sidekiq-client-cli 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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