sidekiq-client-cli 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1bc9f8f02820b43c796142355fe9d8751b77018
4
- data.tar.gz: f8c3a7e82183d93763ab6a37ac7e094336c1c830
3
+ metadata.gz: 81057e325bfea17dfcdc32ded3e762566f04b852
4
+ data.tar.gz: 134fd765c8cb6ca8fc9dcad824ef888514e7e3ff
5
5
  SHA512:
6
- metadata.gz: 74cc88fc0e354c05d17953b446f23504b00a566bf5ca8d8843e48e56808b2973102b3ee3541ec0e0e81a0c663bb483b37b0889a72cacac5cf682213505fdd996
7
- data.tar.gz: 91b257c7e54236dcf2e9d0e05f451008d1118fc82dd5015858616ec8a4dc055676fe82e230e2bc77f29d01fb326945ff4e88e0a6f3bb7a8063470f51bc53b586
6
+ metadata.gz: 076942c11f7f2987954315cf78a4988544827627d19d13ad93b04e405086b9254854d03749297c3fc63bb02f94c4ea34849c1e4a7c24f809cf0524e0a1359578
7
+ data.tar.gz: f24582aab8c62e625755ef7ffa3425f0eb8994e7a5dabbbb51a692e79043695caaf8514773dd385f4c261be8d05864aa1f47b9362eb3da1f40d92836b4bef9aa
@@ -5,9 +5,9 @@ require_relative '../lib/sidekiq_client_cli'
5
5
  begin
6
6
  client = SidekiqClientCLI.new
7
7
  client.parse
8
- client.run
8
+ client.run or exit 1
9
9
  rescue => e
10
10
  STDERR.puts e.message
11
11
  STDERR.puts e.backtrace.join("\n")
12
12
  exit 1
13
- end
13
+ end
@@ -41,18 +41,26 @@ class SidekiqClientCLI
41
41
  self.send settings.command.to_sym
42
42
  end
43
43
 
44
+ # Returns true if all args can be pushed successfully.
45
+ # Returns false if at least one exception occured.
44
46
  def push
45
- settings.command_args.each do |arg|
46
- begin
47
- jid = Sidekiq::Client.push({ 'class' => arg,
48
- 'queue' => settings.queue,
49
- 'args' => [],
50
- 'retry' => settings.retry })
51
- p "Posted #{arg} to queue '#{settings.queue}', Job ID : #{jid}, Retry : #{settings.retry}"
52
- rescue StandardError => ex
53
- p "Failed to push to queue : #{ex.message}"
54
- end
47
+ settings.command_args.inject(true) do |success, arg|
48
+ push_argument arg
55
49
  end
56
50
  end
57
51
 
52
+ private
53
+
54
+ def push_argument(arg)
55
+ jid = Sidekiq::Client.push({ 'class' => arg,
56
+ 'queue' => settings.queue,
57
+ 'args' => [],
58
+ 'retry' => settings.retry })
59
+ p "Posted #{arg} to queue '#{settings.queue}', Job ID : #{jid}, Retry : #{settings.retry}"
60
+ true
61
+ rescue StandardError => ex
62
+ p "Failed to push to queue : #{ex.message}"
63
+ false
64
+ end
65
+
58
66
  end
@@ -1,3 +1,3 @@
1
1
  class SidekiqClientCLI
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -157,97 +157,87 @@ describe SidekiqClientCLI do
157
157
  let(:settings) { double("settings") }
158
158
  let(:klass1) { "FirstWorker" }
159
159
  let(:klass2) { "SecondWorker" }
160
+ let(:client) { SidekiqClientCLI.new }
160
161
 
161
162
  before(:each) do
162
163
  settings.stub(:command_args).and_return [klass1, klass2]
164
+ client.settings = settings
165
+ end
166
+
167
+ it 'returns true if all #push_argument calls return true' do
168
+ client.stub(:push_argument).and_return(true)
169
+ client.push.should eq true
170
+ end
171
+
172
+ it 'returns false if at least one #push_argument call fails' do
173
+ client.should_receive(:push_argument).with('FirstWorker').and_return(true)
174
+ client.should_receive(:push_argument).with('SecondWorker').and_return(false)
175
+ client.push.should eq false
176
+ end
177
+ end
178
+
179
+ describe '#push_argument' do
180
+ let(:settings) { double("settings", :queue => default_queue, :retry => default_retry_option) }
181
+ let(:klass1) { "FirstWorker" }
182
+ let(:client) { SidekiqClientCLI.new }
183
+
184
+ before(:each) do
185
+ client.settings = settings
163
186
  end
164
187
 
165
188
  it "pushes the worker classes" do
166
- settings.stub(:queue).and_return default_queue
167
- settings.stub(:retry).and_return default_retry_option
168
- @client.settings = settings
169
189
  Sidekiq::Client.should_receive(:push).with('class' => klass1,
170
190
  'args' => [],
171
191
  'queue' => default_queue,
172
192
  'retry' => default_retry_option)
173
- Sidekiq::Client.should_receive(:push).with('class' => klass2,
174
- 'args' => [],
175
- 'queue' => default_queue,
176
- 'retry' => default_retry_option)
177
193
 
178
- @client.push
194
+ client.__send__(:push_argument, klass1).should eq true
179
195
  end
180
196
 
181
197
  it "pushes the worker classes to the correct queue" do
182
198
  queue = "Queue"
183
199
  settings.stub(:queue).and_return queue
184
- settings.stub(:retry).and_return default_retry_option
185
- @client.settings = settings
186
200
 
187
201
  Sidekiq::Client.should_receive(:push).with('class' => klass1,
188
202
  'args' => [],
189
203
  'queue' => queue,
190
204
  'retry' => default_retry_option)
191
- Sidekiq::Client.should_receive(:push).with('class' => klass2,
192
- 'args' => [],
193
- 'queue' => queue,
194
- 'retry' => default_retry_option)
195
205
 
196
- @client.push
206
+ client.__send__(:push_argument, klass1).should eq true
197
207
  end
198
208
 
199
209
  it 'pushes the worker classes with retry disabled' do
200
210
  retry_option = false
201
- settings.stub(:queue).and_return default_queue
202
211
  settings.stub(:retry).and_return retry_option
203
- @client.settings = settings
204
212
 
205
213
  Sidekiq::Client.should_receive(:push).with('class' => klass1,
206
214
  'args' => [],
207
215
  'queue' => default_queue,
208
216
  'retry' => retry_option)
209
- Sidekiq::Client.should_receive(:push).with('class' => klass2,
210
- 'args' => [],
211
- 'queue' => default_queue,
212
- 'retry' => retry_option)
213
217
 
214
- @client.push
218
+ client.__send__(:push_argument, klass1).should eq true
215
219
  end
216
220
 
217
221
  it 'pushes the worker classes with a set retry number' do
218
222
  retry_attempts = 5
219
- settings.stub(:queue).and_return default_queue
220
223
  settings.stub(:retry).and_return retry_attempts
221
- @client.settings = settings
222
224
 
223
225
  Sidekiq::Client.should_receive(:push).with('class' => klass1,
224
226
  'args' => [],
225
227
  'queue' => default_queue,
226
228
  'retry' => retry_attempts)
227
- Sidekiq::Client.should_receive(:push).with('class' => klass2,
228
- 'args' => [],
229
- 'queue' => default_queue,
230
- 'retry' => retry_attempts)
231
229
 
232
- @client.push
230
+ client.__send__(:push_argument, klass1).should eq true
233
231
  end
234
232
 
235
233
  it "prints and continues if an exception is raised" do
236
- settings.stub(:queue).and_return default_queue
237
- settings.stub(:retry).and_return default_retry_option
238
- @client.settings = settings
239
-
240
234
  Sidekiq::Client.should_receive(:push).with('class' => klass1,
241
235
  'args' => [],
242
236
  'queue' => default_queue,
243
237
  'retry' => default_retry_option).and_raise
244
- Sidekiq::Client.should_receive(:push).with('class' => klass2,
245
- 'args' => [],
246
- 'queue' => default_queue,
247
- 'retry' => default_retry_option)
248
238
 
249
239
  out = IOHelper.stdout_read do
250
- @client.push
240
+ client.__send__(:push_argument, klass1).should eq false
251
241
  end
252
242
  out.should include("Failed to push")
253
243
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-client-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adil Haritah
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-13 00:00:00.000000000 Z
11
+ date: 2014-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler