Skip to content

Commit 99415f2

Browse files
committed
unnest contexts
1 parent 2beedd3 commit 99415f2

File tree

2 files changed

+112
-110
lines changed

2 files changed

+112
-110
lines changed

test/delayed_queue_test.rb

Lines changed: 110 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -391,114 +391,6 @@ def assert_resque_key_exists?(key)
391391
assert_equal(1, Resque.delayed_timestamp_peek(t, 0, 3).length)
392392
end
393393

394-
context 'non-batch delayed item queue' do
395-
batch_disabled = Resque::Scheduler.disable_delayed_requeue_batches
396-
batch_size = Resque::Scheduler.delayed_requeue_batch_size
397-
setup do
398-
Resque::Scheduler.quiet = true
399-
Resque.data_store.redis.flushall
400-
Resque::Scheduler.disable_delayed_requeue_batches = true
401-
Resque::Scheduler.delayed_requeue_batch_size = 1
402-
end
403-
404-
teardown do
405-
Resque::Scheduler.disable_delayed_requeue_batches = batch_disabled
406-
Resque::Scheduler.delayed_requeue_batch_size = batch_size
407-
end
408-
409-
test 'enqueue_delayed_items_for_timestamp enqueues jobs for the timestamp' do
410-
t = Time.now + 60
411-
412-
Resque::Scheduler.expects(:enqueue_items_in_batch_for_timestamp).never
413-
414-
# create 90 jobs
415-
90.times { Resque.enqueue_at(t, SomeIvarJob) }
416-
assert_equal(90, Resque.delayed_timestamp_size(t))
417-
418-
Resque::Scheduler.enqueue_delayed_items_for_timestamp(t)
419-
assert_equal(0, Resque.delayed_timestamp_size(t))
420-
421-
# assert that the active queue is now 90
422-
assert_equal(90, Resque.size(Resque.queue_from_class(SomeIvarJob)))
423-
end
424-
end
425-
426-
context 'batch delayed item queue' do
427-
batch_disabled = Resque::Scheduler.disable_delayed_requeue_batches
428-
batch_size = Resque::Scheduler.delayed_requeue_batch_size
429-
setup do
430-
Resque::Scheduler.quiet = true
431-
Resque.data_store.redis.flushall
432-
Resque::Scheduler.disable_delayed_requeue_batches = false
433-
Resque::Scheduler.delayed_requeue_batch_size = 100
434-
end
435-
436-
teardown do
437-
Resque::Scheduler.disable_delayed_requeue_batches = batch_disabled
438-
Resque::Scheduler.delayed_requeue_batch_size = batch_size
439-
end
440-
441-
test 'enqueue_delayed_items_for_timestamp enqueues jobs in 2 batches' do
442-
t = Time.now + 60
443-
444-
Resque::Scheduler.expects(:enqueue_next_item).never
445-
446-
# create 120 jobs
447-
120.times { Resque.enqueue_at(t, SomeIvarJob) }
448-
assert_equal(120, Resque.delayed_timestamp_size(t))
449-
450-
Resque::Scheduler.enqueue_delayed_items_for_timestamp(t)
451-
assert_equal(0, Resque.delayed_timestamp_size(t))
452-
453-
# assert that the active queue is now 120
454-
assert_equal(120, Resque.size(Resque.queue_from_class(SomeIvarJob)))
455-
end
456-
457-
test 'enqueue_delayed_items_for_timestamp enqueues jobs in one batch for the timestamp' do
458-
t = Time.now + 60
459-
460-
Resque::Scheduler.expects(:enqueue_next_item).never
461-
462-
# create 90 jobs
463-
90.times { Resque.enqueue_at(t, SomeIvarJob) }
464-
assert_equal(90, Resque.delayed_timestamp_size(t))
465-
466-
Resque::Scheduler.enqueue_delayed_items_for_timestamp(t)
467-
assert_equal(0, Resque.delayed_timestamp_size(t))
468-
469-
# assert that the active queue is now 90
470-
assert_equal(90, Resque.size(Resque.queue_from_class(SomeIvarJob)))
471-
end
472-
473-
# test to make sure the timestamp is cleaned up
474-
475-
test 'enqueue_delayed_items_for_timestamp handles a watch failure' do
476-
t = Time.now + 60
477-
478-
# create 100 jobs
479-
100.times { Resque.enqueue_at(t, SomeIvarJob) }
480-
assert_equal(100, Resque.delayed_timestamp_size(t))
481-
482-
Resque.redis.stubs(:watch).returns(nil)
483-
484-
Resque.expects(:clean_up_timestamp).never
485-
486-
Resque::Scheduler.enqueue_delayed_items_for_timestamp(t)
487-
end
488-
489-
test 'enqueue_delayed_items_for_timestamp cleans up a timestamp' do
490-
t = Time.now + 60
491-
492-
# create 100 jobs
493-
100.times { Resque.enqueue_at(t, SomeIvarJob) }
494-
assert_equal(100, Resque.delayed_timestamp_size(t))
495-
496-
Resque.expects(:clean_up_timestamp).once
497-
498-
Resque::Scheduler.enqueue_delayed_items_for_timestamp(t)
499-
end
500-
end
501-
502394
test 'enqueue_delayed_items_for_timestamp creates jobs ' \
503395
'and empties the delayed queue' do
504396
t = Time.now + 60
@@ -1170,3 +1062,113 @@ def assert_resque_key_exists?(key)
11701062
assert !Resque.delayed?(SomeJob)
11711063
end
11721064
end
1065+
1066+
context 'DelayedQueue non-batch delayed item queue' do
1067+
batch_disabled = Resque::Scheduler.disable_delayed_requeue_batches
1068+
batch_size = Resque::Scheduler.delayed_requeue_batch_size
1069+
setup do
1070+
Resque::Scheduler.quiet = true
1071+
Resque.data_store.redis.flushall
1072+
Resque::Scheduler.disable_delayed_requeue_batches = true
1073+
Resque::Scheduler.delayed_requeue_batch_size = 1
1074+
end
1075+
1076+
teardown do
1077+
Resque::Scheduler.disable_delayed_requeue_batches = batch_disabled
1078+
Resque::Scheduler.delayed_requeue_batch_size = batch_size
1079+
end
1080+
1081+
test 'enqueue_delayed_items_for_timestamp enqueues jobs for the timestamp' do
1082+
t = Time.now + 60
1083+
1084+
# create 90 jobs at t
1085+
90.times { Resque.enqueue_at(t, SomeIvarJob) }
1086+
assert_equal(90, Resque.delayed_timestamp_size(t))
1087+
assert_equal(0, Resque.size(Resque.queue_from_class(SomeIvarJob)))
1088+
1089+
Resque::Scheduler.expects(:enqueue_items_in_batch_for_timestamp).never
1090+
1091+
Resque::Scheduler.enqueue_delayed_items_for_timestamp(t)
1092+
1093+
# assert that the active queue is now 90
1094+
assert_equal(0, Resque.delayed_timestamp_size(t))
1095+
assert_equal(90, Resque.size(Resque.queue_from_class(SomeIvarJob)))
1096+
end
1097+
end
1098+
1099+
context 'DelayedQueue batch delayed item queue' do
1100+
batch_disabled = Resque::Scheduler.disable_delayed_requeue_batches
1101+
batch_size = Resque::Scheduler.delayed_requeue_batch_size
1102+
setup do
1103+
Resque::Scheduler.quiet = true
1104+
Resque.data_store.redis.flushall
1105+
Resque::Scheduler.disable_delayed_requeue_batches = false
1106+
Resque::Scheduler.delayed_requeue_batch_size = 100
1107+
end
1108+
1109+
teardown do
1110+
Resque::Scheduler.disable_delayed_requeue_batches = batch_disabled
1111+
Resque::Scheduler.delayed_requeue_batch_size = batch_size
1112+
end
1113+
1114+
test 'enqueue_delayed_items_for_timestamp enqueues jobs in 2 batches' do
1115+
t = Time.now + 60
1116+
1117+
# create 120 jobs
1118+
120.times { Resque.enqueue_at(t, SomeIvarJob) }
1119+
assert_equal(120, Resque.delayed_timestamp_size(t))
1120+
assert_equal(0, Resque.size(Resque.queue_from_class(SomeIvarJob)))
1121+
1122+
Resque::Scheduler.expects(:enqueue_next_item).never
1123+
1124+
Resque::Scheduler.enqueue_delayed_items_for_timestamp(t)
1125+
1126+
# assert that the active queue is now 120
1127+
assert_equal(0, Resque.delayed_timestamp_size(t))
1128+
assert_equal(120, Resque.size(Resque.queue_from_class(SomeIvarJob)))
1129+
end
1130+
1131+
test 'enqueue_delayed_items_for_timestamp enqueues jobs in one batch for the timestamp' do
1132+
t = Time.now + 60
1133+
1134+
# create 90 jobs
1135+
90.times { Resque.enqueue_at(t, SomeIvarJob) }
1136+
assert_equal(90, Resque.delayed_timestamp_size(t))
1137+
assert_equal(0, Resque.size(Resque.queue_from_class(SomeIvarJob)))
1138+
1139+
Resque::Scheduler.expects(:enqueue_next_item).never
1140+
1141+
Resque::Scheduler.enqueue_delayed_items_for_timestamp(t)
1142+
1143+
# assert that the active queue is now 90
1144+
assert_equal(0, Resque.delayed_timestamp_size(t))
1145+
assert_equal(90, Resque.size(Resque.queue_from_class(SomeIvarJob)))
1146+
end
1147+
1148+
# test to make sure the timestamp is cleaned up
1149+
test 'enqueue_delayed_items_for_timestamp handles a watch failure' do
1150+
t = Time.now + 60
1151+
1152+
# create 100 jobs
1153+
100.times { Resque.enqueue_at(t, SomeIvarJob) }
1154+
assert_equal(100, Resque.delayed_timestamp_size(t))
1155+
1156+
Resque.redis.stubs(:watch).returns(nil)
1157+
1158+
Resque.expects(:clean_up_timestamp).never
1159+
1160+
Resque::Scheduler.enqueue_delayed_items_for_timestamp(t)
1161+
end
1162+
1163+
test 'enqueue_delayed_items_for_timestamp cleans up a timestamp' do
1164+
t = Time.now + 60
1165+
1166+
# create 100 jobs
1167+
100.times { Resque.enqueue_at(t, SomeIvarJob) }
1168+
assert_equal(100, Resque.delayed_timestamp_size(t))
1169+
1170+
Resque.expects(:clean_up_timestamp).once
1171+
1172+
Resque::Scheduler.enqueue_delayed_items_for_timestamp(t)
1173+
end
1174+
end

test/scheduler_task_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888

8989
@pid = Process.pid
9090
Thread.new do
91-
sleep(0.1)
91+
sleep(0.3)
9292
Process.kill(:TERM, @pid)
9393
end
9494

@@ -104,7 +104,7 @@
104104

105105
@pid = Process.pid
106106
Thread.new do
107-
sleep(0.1)
107+
sleep(0.3)
108108
Process.kill(:TERM, @pid)
109109
end
110110

0 commit comments

Comments
 (0)