sidekiq-cron 0.6.3 → 1.2.0

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.
@@ -20,6 +20,23 @@ module Sidekiq
20
20
  end
21
21
  end
22
22
 
23
+ # display job detail + jid history
24
+ app.get '/cron/:name' do
25
+ view_path = File.join(File.expand_path("..", __FILE__), "views")
26
+
27
+ @job = Sidekiq::Cron::Job.find(route_params[:name])
28
+ if @job
29
+ #if Slim renderer exists and sidekiq has layout.slim in views
30
+ if defined?(Slim) && File.exists?(File.join(settings.views,"layout.slim"))
31
+ render(:slim, File.read(File.join(view_path, "cron_show.slim")))
32
+ else
33
+ render(:erb, File.read(File.join(view_path, "cron_show.erb")))
34
+ end
35
+ else
36
+ redirect "#{root_path}cron"
37
+ end
38
+ end
39
+
23
40
  #enque cron job
24
41
  app.post '/cron/:name/enque' do
25
42
  if route_params[:name] === '__all__'
@@ -27,7 +44,7 @@ module Sidekiq
27
44
  elsif job = Sidekiq::Cron::Job.find(route_params[:name])
28
45
  job.enque!
29
46
  end
30
- redirect "#{root_path}cron"
47
+ redirect params['redirect'] || "#{root_path}cron"
31
48
  end
32
49
 
33
50
  #delete schedule
@@ -47,7 +64,7 @@ module Sidekiq
47
64
  elsif job = Sidekiq::Cron::Job.find(route_params[:name])
48
65
  job.enable!
49
66
  end
50
- redirect "#{root_path}cron"
67
+ redirect params['redirect'] || "#{root_path}cron"
51
68
  end
52
69
 
53
70
  #disable job
@@ -57,7 +74,7 @@ module Sidekiq
57
74
  elsif job = Sidekiq::Cron::Job.find(route_params[:name])
58
75
  job.disable!
59
76
  end
60
- redirect "#{root_path}cron"
77
+ redirect params['redirect'] || "#{root_path}cron"
61
78
  end
62
79
 
63
80
  end
data/sidekiq-cron.gemspec CHANGED
@@ -2,18 +2,18 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: sidekiq-cron 0.6.3 ruby lib
5
+ # stub: sidekiq-cron 1.2.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
- s.name = "sidekiq-cron"
9
- s.version = "0.6.3"
8
+ s.name = "sidekiq-cron".freeze
9
+ s.version = "1.2.0"
10
10
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
- s.authors = ["Ondrej Bartas"]
14
- s.date = "2017-06-20"
15
- s.description = "Enables to set jobs to be run in specified time (using CRON notation)"
16
- s.email = "ondrej@bartas.cz"
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Ondrej Bartas".freeze]
14
+ s.date = "2020-04-03"
15
+ s.description = "Enables to set jobs to be run in specified time (using CRON notation)".freeze
16
+ s.email = "ondrej@bartas.cz".freeze
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt",
19
19
  "README.md"
@@ -37,11 +37,15 @@ Gem::Specification.new do |s|
37
37
  "lib/sidekiq/cron/launcher.rb",
38
38
  "lib/sidekiq/cron/locales/de.yml",
39
39
  "lib/sidekiq/cron/locales/en.yml",
40
+ "lib/sidekiq/cron/locales/ja.yml",
40
41
  "lib/sidekiq/cron/locales/ru.yml",
42
+ "lib/sidekiq/cron/locales/zh-CN.yml",
41
43
  "lib/sidekiq/cron/poller.rb",
42
44
  "lib/sidekiq/cron/support.rb",
43
45
  "lib/sidekiq/cron/views/cron.erb",
44
46
  "lib/sidekiq/cron/views/cron.slim",
47
+ "lib/sidekiq/cron/views/cron_show.erb",
48
+ "lib/sidekiq/cron/views/cron_show.slim",
45
49
  "lib/sidekiq/cron/web.rb",
46
50
  "lib/sidekiq/cron/web_extension.rb",
47
51
  "sidekiq-cron.gemspec",
@@ -51,75 +55,75 @@ Gem::Specification.new do |s|
51
55
  "test/unit/poller_test.rb",
52
56
  "test/unit/web_extension_test.rb"
53
57
  ]
54
- s.homepage = "http://github.com/ondrejbartas/sidekiq-cron"
55
- s.licenses = ["MIT"]
56
- s.rubygems_version = "2.5.1"
57
- s.summary = "Sidekiq Cron helps to add repeated scheduled jobs"
58
+ s.homepage = "http://github.com/ondrejbartas/sidekiq-cron".freeze
59
+ s.licenses = ["MIT".freeze]
60
+ s.rubygems_version = "2.5.2.3".freeze
61
+ s.summary = "Sidekiq Cron helps to add repeated scheduled jobs".freeze
58
62
 
59
63
  if s.respond_to? :specification_version then
60
64
  s.specification_version = 4
61
65
 
62
66
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
63
- s.add_runtime_dependency(%q<sidekiq>, [">= 4.2.1"])
64
- s.add_runtime_dependency(%q<rufus-scheduler>, [">= 3.3.0"])
65
- s.add_development_dependency(%q<bundler>, [">= 0"])
66
- s.add_development_dependency(%q<simplecov>, [">= 0"])
67
- s.add_development_dependency(%q<redis-namespace>, [">= 1.5.2"])
68
- s.add_development_dependency(%q<shoulda-context>, [">= 0"])
69
- s.add_development_dependency(%q<rack>, [">= 0"])
70
- s.add_development_dependency(%q<rack-test>, [">= 0"])
71
- s.add_development_dependency(%q<jeweler>, [">= 0"])
72
- s.add_development_dependency(%q<minitest>, [">= 0"])
73
- s.add_development_dependency(%q<test-unit>, [">= 0"])
74
- s.add_development_dependency(%q<sdoc>, [">= 0"])
75
- s.add_development_dependency(%q<slim>, [">= 0"])
76
- s.add_development_dependency(%q<sinatra>, [">= 0"])
77
- s.add_development_dependency(%q<mocha>, [">= 0"])
78
- s.add_development_dependency(%q<coveralls>, [">= 0"])
79
- s.add_development_dependency(%q<shotgun>, [">= 0"])
80
- s.add_development_dependency(%q<guard>, [">= 0"])
81
- s.add_development_dependency(%q<guard-minitest>, [">= 0"])
67
+ s.add_runtime_dependency(%q<sidekiq>.freeze, [">= 4.2.1"])
68
+ s.add_runtime_dependency(%q<fugit>.freeze, ["~> 1.1"])
69
+ s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
70
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
71
+ s.add_development_dependency(%q<redis-namespace>.freeze, [">= 1.5.2"])
72
+ s.add_development_dependency(%q<shoulda-context>.freeze, [">= 0"])
73
+ s.add_development_dependency(%q<rack>.freeze, [">= 0"])
74
+ s.add_development_dependency(%q<rack-test>.freeze, [">= 0"])
75
+ s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
76
+ s.add_development_dependency(%q<minitest>.freeze, [">= 0"])
77
+ s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
78
+ s.add_development_dependency(%q<sdoc>.freeze, [">= 0"])
79
+ s.add_development_dependency(%q<slim>.freeze, [">= 0"])
80
+ s.add_development_dependency(%q<sinatra>.freeze, [">= 0"])
81
+ s.add_development_dependency(%q<mocha>.freeze, [">= 0"])
82
+ s.add_development_dependency(%q<coveralls>.freeze, [">= 0"])
83
+ s.add_development_dependency(%q<shotgun>.freeze, [">= 0"])
84
+ s.add_development_dependency(%q<guard>.freeze, [">= 0"])
85
+ s.add_development_dependency(%q<guard-minitest>.freeze, [">= 0"])
82
86
  else
83
- s.add_dependency(%q<sidekiq>, [">= 4.2.1"])
84
- s.add_dependency(%q<rufus-scheduler>, [">= 3.3.0"])
85
- s.add_dependency(%q<bundler>, [">= 0"])
86
- s.add_dependency(%q<simplecov>, [">= 0"])
87
- s.add_dependency(%q<redis-namespace>, [">= 1.5.2"])
88
- s.add_dependency(%q<shoulda-context>, [">= 0"])
89
- s.add_dependency(%q<rack>, [">= 0"])
90
- s.add_dependency(%q<rack-test>, [">= 0"])
91
- s.add_dependency(%q<jeweler>, [">= 0"])
92
- s.add_dependency(%q<minitest>, [">= 0"])
93
- s.add_dependency(%q<test-unit>, [">= 0"])
94
- s.add_dependency(%q<sdoc>, [">= 0"])
95
- s.add_dependency(%q<slim>, [">= 0"])
96
- s.add_dependency(%q<sinatra>, [">= 0"])
97
- s.add_dependency(%q<mocha>, [">= 0"])
98
- s.add_dependency(%q<coveralls>, [">= 0"])
99
- s.add_dependency(%q<shotgun>, [">= 0"])
100
- s.add_dependency(%q<guard>, [">= 0"])
101
- s.add_dependency(%q<guard-minitest>, [">= 0"])
87
+ s.add_dependency(%q<sidekiq>.freeze, [">= 4.2.1"])
88
+ s.add_dependency(%q<fugit>.freeze, ["~> 1.1"])
89
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
90
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
91
+ s.add_dependency(%q<redis-namespace>.freeze, [">= 1.5.2"])
92
+ s.add_dependency(%q<shoulda-context>.freeze, [">= 0"])
93
+ s.add_dependency(%q<rack>.freeze, [">= 0"])
94
+ s.add_dependency(%q<rack-test>.freeze, [">= 0"])
95
+ s.add_dependency(%q<jeweler>.freeze, [">= 0"])
96
+ s.add_dependency(%q<minitest>.freeze, [">= 0"])
97
+ s.add_dependency(%q<test-unit>.freeze, [">= 0"])
98
+ s.add_dependency(%q<sdoc>.freeze, [">= 0"])
99
+ s.add_dependency(%q<slim>.freeze, [">= 0"])
100
+ s.add_dependency(%q<sinatra>.freeze, [">= 0"])
101
+ s.add_dependency(%q<mocha>.freeze, [">= 0"])
102
+ s.add_dependency(%q<coveralls>.freeze, [">= 0"])
103
+ s.add_dependency(%q<shotgun>.freeze, [">= 0"])
104
+ s.add_dependency(%q<guard>.freeze, [">= 0"])
105
+ s.add_dependency(%q<guard-minitest>.freeze, [">= 0"])
102
106
  end
103
107
  else
104
- s.add_dependency(%q<sidekiq>, [">= 4.2.1"])
105
- s.add_dependency(%q<rufus-scheduler>, [">= 3.3.0"])
106
- s.add_dependency(%q<bundler>, [">= 0"])
107
- s.add_dependency(%q<simplecov>, [">= 0"])
108
- s.add_dependency(%q<redis-namespace>, [">= 1.5.2"])
109
- s.add_dependency(%q<shoulda-context>, [">= 0"])
110
- s.add_dependency(%q<rack>, [">= 0"])
111
- s.add_dependency(%q<rack-test>, [">= 0"])
112
- s.add_dependency(%q<jeweler>, [">= 0"])
113
- s.add_dependency(%q<minitest>, [">= 0"])
114
- s.add_dependency(%q<test-unit>, [">= 0"])
115
- s.add_dependency(%q<sdoc>, [">= 0"])
116
- s.add_dependency(%q<slim>, [">= 0"])
117
- s.add_dependency(%q<sinatra>, [">= 0"])
118
- s.add_dependency(%q<mocha>, [">= 0"])
119
- s.add_dependency(%q<coveralls>, [">= 0"])
120
- s.add_dependency(%q<shotgun>, [">= 0"])
121
- s.add_dependency(%q<guard>, [">= 0"])
122
- s.add_dependency(%q<guard-minitest>, [">= 0"])
108
+ s.add_dependency(%q<sidekiq>.freeze, [">= 4.2.1"])
109
+ s.add_dependency(%q<fugit>.freeze, ["~> 1.1"])
110
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
111
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
112
+ s.add_dependency(%q<redis-namespace>.freeze, [">= 1.5.2"])
113
+ s.add_dependency(%q<shoulda-context>.freeze, [">= 0"])
114
+ s.add_dependency(%q<rack>.freeze, [">= 0"])
115
+ s.add_dependency(%q<rack-test>.freeze, [">= 0"])
116
+ s.add_dependency(%q<jeweler>.freeze, [">= 0"])
117
+ s.add_dependency(%q<minitest>.freeze, [">= 0"])
118
+ s.add_dependency(%q<test-unit>.freeze, [">= 0"])
119
+ s.add_dependency(%q<sdoc>.freeze, [">= 0"])
120
+ s.add_dependency(%q<slim>.freeze, [">= 0"])
121
+ s.add_dependency(%q<sinatra>.freeze, [">= 0"])
122
+ s.add_dependency(%q<mocha>.freeze, [">= 0"])
123
+ s.add_dependency(%q<coveralls>.freeze, [">= 0"])
124
+ s.add_dependency(%q<shotgun>.freeze, [">= 0"])
125
+ s.add_dependency(%q<guard>.freeze, [">= 0"])
126
+ s.add_dependency(%q<guard-minitest>.freeze, [">= 0"])
123
127
  end
124
128
  end
125
129
 
@@ -2,13 +2,11 @@
2
2
  require './test/test_helper'
3
3
  require 'benchmark'
4
4
 
5
- describe 'Perfromance Poller' do
5
+ describe 'Performance Poller' do
6
6
  X = 10000
7
7
  before do
8
8
  Sidekiq.redis = REDIS
9
- Sidekiq.redis do |conn|
10
- conn.flushdb
11
- end
9
+ Redis.current.flushdb
12
10
 
13
11
  #clear all previous saved data from redis
14
12
  Sidekiq.redis do |conn|
@@ -28,12 +26,12 @@ describe 'Perfromance Poller' do
28
26
  end
29
27
 
30
28
  @poller = Sidekiq::Cron::Poller.new
31
- now = Time.now.utc
32
- enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 10, 5)
29
+ now = Time.now.utc + 3600
30
+ enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 10, 5)
33
31
  Time.stubs(:now).returns(enqueued_time)
34
32
  end
35
33
 
36
- it 'should enqueue 10000 jobs in less than 30s' do
34
+ it 'should enqueue 10000 jobs in less than 40s' do
37
35
  Sidekiq.redis do |conn|
38
36
  assert_equal 0, conn.llen("queue:default"), 'Queue should be empty'
39
37
  end
@@ -46,7 +44,7 @@ describe 'Perfromance Poller' do
46
44
  assert_equal X, conn.llen("queue:default"), 'Queue should be full'
47
45
  end
48
46
 
49
- puts "Perfomance test finished in #{bench.real}"
50
- assert_operator 30, :>, bench.real
47
+ puts "Performance test finished in #{bench.real}"
48
+ assert_operator bench.real, :<, 40
51
49
  end
52
50
  end
data/test/test_helper.rb CHANGED
@@ -20,7 +20,7 @@ Coveralls.wear!
20
20
  require "minitest/autorun"
21
21
  require 'shoulda-context'
22
22
  require "rack/test"
23
- require "mocha/setup"
23
+ require 'mocha/minitest'
24
24
 
25
25
  ENV['RACK_ENV'] = 'test'
26
26
 
@@ -66,6 +66,13 @@ end
66
66
 
67
67
  module ActiveJob
68
68
  class Base
69
+ attr_accessor *%i[job_class provider_job_id queue_name arguments]
70
+
71
+ def initialize
72
+ yield self if block_given?
73
+ self.provider_job_id ||= SecureRandom.hex(12)
74
+ end
75
+
69
76
  def self.queue_name_prefix
70
77
  @queue_name_prefix
71
78
  end
@@ -80,12 +87,16 @@ module ActiveJob
80
87
  self
81
88
  end
82
89
 
90
+ def try(method, *args, &block)
91
+ send method, *args, &block if respond_to? method
92
+ end
93
+
83
94
  def self.perform_later(*args)
84
- {
85
- "job_class" => self.class.name,
86
- "queue_name" => @queue,
87
- "args" => [*args],
88
- }
95
+ new do |instance|
96
+ instance.job_class = self.class.name
97
+ instance.queue_name = @queue
98
+ instance.arguments = [*args]
99
+ end
89
100
  end
90
101
  end
91
102
  end
@@ -131,6 +131,28 @@ describe "Cron Job" do
131
131
  end
132
132
  end
133
133
 
134
+ describe 'parse_enqueue_time' do
135
+ before do
136
+ @args = {
137
+ name: "Test",
138
+ cron: "* * * * *"
139
+ }
140
+ @job = Sidekiq::Cron::Job.new(@args)
141
+ end
142
+
143
+ it 'should correctly parse new format' do
144
+ assert_equal @job.send(:parse_enqueue_time, '2017-01-02 15:23:43 UTC'), Time.new(2017, 1, 2, 15, 23, 43, '+00:00')
145
+ end
146
+
147
+ it 'should correctly parse new format with different timezone' do
148
+ assert_equal @job.send(:parse_enqueue_time, '2017-01-02 15:23:43 +01:00'), Time.new(2017, 1, 2, 15, 23, 43, '+01:00')
149
+ end
150
+
151
+ it 'should correctly parse old format' do
152
+ assert_equal @job.send(:parse_enqueue_time, '2017-01-02 15:23:43'), Time.new(2017, 1, 2, 15, 23, 43, '+00:00')
153
+ end
154
+ end
155
+
134
156
  describe 'formatted time' do
135
157
  before do
136
158
  @args = {
@@ -201,6 +223,34 @@ describe "Cron Job" do
201
223
  "class"=>"CronTestClassWithQueue",
202
224
  "args"=>[]}
203
225
  end
226
+
227
+ it "be initialized with 'class' and date_as_argument" do
228
+ job = Sidekiq::Cron::Job.new('class' => 'CronTestClassWithQueue', "date_as_argument" => true)
229
+
230
+ job_message = job.message
231
+ job_args = job_message.delete("args")
232
+ assert_equal job_message, {"retry"=>false,
233
+ "queue"=>:super,
234
+ "backtrace"=>true,
235
+ "class"=>"CronTestClassWithQueue"}
236
+ assert job_args[-1].is_a?(Float)
237
+ assert job_args[-1].between?(Time.now.to_f - 1, Time.now.to_f)
238
+ end
239
+
240
+ it "be initialized with 'class', 2 arguments and date_as_argument" do
241
+ job = Sidekiq::Cron::Job.new('class' => 'CronTestClassWithQueue', "date_as_argument" => true, "args"=> ["arg1", :arg2])
242
+
243
+ job_message = job.message
244
+ job_args = job_message.delete("args")
245
+ assert_equal job_message, {"retry"=>false,
246
+ "queue"=>:super,
247
+ "backtrace"=>true,
248
+ "class"=>"CronTestClassWithQueue"}
249
+ assert job_args[-1].is_a?(Float)
250
+ assert job_args[-1].between?(Time.now.to_f - 1, Time.now.to_f)
251
+ assert_equal job_args[0..-2], ["arg1", :arg2]
252
+ end
253
+
204
254
  end
205
255
 
206
256
  describe "cron test" do
@@ -210,24 +260,24 @@ describe "Cron Job" do
210
260
 
211
261
  it "return previous minute" do
212
262
  @job.cron = "* * * * *"
213
- time = Time.now.utc
263
+ time = Time.new(2018, 8, 10, 13, 24, 56).utc
214
264
  assert_equal @job.last_time(time).strftime("%Y-%m-%d-%H-%M-%S"), time.strftime("%Y-%m-%d-%H-%M-00")
215
265
  end
216
266
 
217
267
  it "return previous hour" do
218
268
  @job.cron = "1 * * * *"
219
- time = Time.now.utc
269
+ time = Time.new(2018, 8, 10, 13, 24, 56).utc
220
270
  assert_equal @job.last_time(time).strftime("%Y-%m-%d-%H-%M-%S"), time.strftime("%Y-%m-%d-%H-01-00")
221
271
  end
222
272
 
223
273
  it "return previous day" do
224
274
  @job.cron = "1 2 * * * Etc/GMT"
225
- time = Time.now.utc
275
+ time = Time.new(2018, 8, 10, 13, 24, 56).utc
226
276
 
227
277
  if time.hour >= 2
228
278
  assert_equal @job.last_time(time).strftime("%Y-%m-%d-%H-%M-%S"), time.strftime("%Y-%m-%d-02-01-00")
229
279
  else
230
- yesterday = (Date.today - 1)
280
+ yesterday = time - 1.day
231
281
  assert_equal @job.last_time(time).strftime("%Y-%m-%d-%H-%M-%S"), yesterday.strftime("%Y-%m-%d-02-01-00")
232
282
  end
233
283
  end
@@ -299,6 +349,7 @@ describe "Cron Job" do
299
349
  it 'should return valid payload for Sidekiq::Client' do
300
350
  payload = {
301
351
  'class' => 'ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper',
352
+ 'wrapped' => 'ActiveJobCronTestClass',
302
353
  'queue' => 'super_queue',
303
354
  'description' => nil,
304
355
  'args' => [{
@@ -330,10 +381,11 @@ describe "Cron Job" do
330
381
 
331
382
  it 'should return valid payload for Sidekiq::Client' do
332
383
  payload = {
333
- 'class' => 'ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper',
334
- 'queue' => 'prefix_super_queue',
384
+ 'class' => 'ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper',
385
+ 'wrapped' => 'ActiveJobCronTestClass',
386
+ 'queue' => 'prefix_super_queue',
335
387
  'description' => nil,
336
- 'args' =>[{
388
+ 'args' => [{
337
389
  'job_class' => 'ActiveJobCronTestClass',
338
390
  'job_id' => 'XYZ',
339
391
  'queue_name' => 'prefix_super_queue',
@@ -357,7 +409,7 @@ describe "Cron Job" do
357
409
 
358
410
  it 'pushes to queue active jobs message' do
359
411
  @job.expects(:enqueue_active_job)
360
- .returns(true)
412
+ .returns(ActiveJobCronTestClass.new)
361
413
  @job.enque!
362
414
  end
363
415
  end
@@ -375,7 +427,7 @@ describe "Cron Job" do
375
427
 
376
428
  it 'pushes to queue active jobs message with queue_name_prefix' do
377
429
  @job.expects(:enqueue_active_job)
378
- .returns(true)
430
+ .returns(ActiveJobCronTestClass.new)
379
431
  @job.enque!
380
432
  end
381
433
  end
@@ -522,7 +574,6 @@ describe "Cron Job" do
522
574
  assert @job.save
523
575
  end
524
576
 
525
-
526
577
  it "be saved and found by name" do
527
578
  assert @job.save, "not saved"
528
579
  assert Sidekiq::Cron::Job.find("Test").is_a?(Sidekiq::Cron::Job)
@@ -599,14 +650,15 @@ describe "Cron Job" do
599
650
 
600
651
  it "last_enqueue_time shouldn't be rewritten after save" do
601
652
  #adding last_enqueue_time to initialize is only for test purpose
602
- last_enqueue_time = '2013-01-01 23:59:59'
653
+ last_enqueue_time = '2013-01-01 23:59:59 +0000'
654
+ expected_enqueue_time = DateTime.parse(last_enqueue_time).to_time.utc
603
655
  Sidekiq::Cron::Job.create(@args.merge('last_enqueue_time' => last_enqueue_time))
604
656
  job = Sidekiq::Cron::Job.find(@args)
605
- assert_equal job.last_enqueue_time, Time.parse(last_enqueue_time)
657
+ assert_equal job.last_enqueue_time, expected_enqueue_time
606
658
 
607
659
  Sidekiq::Cron::Job.create(@args)
608
660
  job = Sidekiq::Cron::Job.find(@args)
609
- assert_equal job.last_enqueue_time, Time.parse(last_enqueue_time), "after second create should have same time"
661
+ assert_equal job.last_enqueue_time, expected_enqueue_time, "after second create should have same time"
610
662
  end
611
663
  end
612
664
 
@@ -883,7 +935,8 @@ describe "Cron Job" do
883
935
  @jobs_hash['name_of_job']['cron'] = "bad cron"
884
936
  out = Sidekiq::Cron::Job.load_from_hash @jobs_hash
885
937
  assert_equal 1, out.size, "should have 1 error"
886
- assert_equal ({"name_of_job"=>["'cron' -> bad cron: not a valid cronline : 'bad cron'"]}), out
938
+ assert_includes out['name_of_job'].first, "bad cron"
939
+ assert_includes out['name_of_job'].first, "ArgumentError:"
887
940
  assert_equal 1, Sidekiq::Cron::Job.all.size, "Should have only 1 job after load"
888
941
  end
889
942