Skip to content

Commit 8fbbf1b

Browse files
committed
Added long polling test.
1 parent dd9f171 commit 8fbbf1b

File tree

5 files changed

+49
-16
lines changed

5 files changed

+49
-16
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ test/config.yml
77
*.sublime*
88
/*.gem
99
config.yml
10+
iron.json
1011

Gemfile.lock

+11-11
Original file line numberDiff line numberDiff line change
@@ -9,33 +9,32 @@ GEM
99
specs:
1010
beanstalk-client (1.1.1)
1111
concur (2.1.1)
12-
ethon (0.6.2)
12+
ethon (0.7.0)
1313
ffi (>= 1.3.0)
14-
mime-types (~> 1.18)
1514
ffi (1.9.3)
1615
go (1.1.0)
1716
concur
1817
iron_core (1.0.3)
1918
rest (>= 2.6.4)
20-
iron_worker_ng (1.2.0)
19+
iron_worker_ng (1.4.2)
2120
bundler
2221
iron_core (>= 1.0.0)
23-
rubyzip (>= 1.0.0)
24-
mime-types (1.25.1)
25-
minitest (5.2.3)
22+
rubyzip (= 0.9.9)
23+
minitest (5.3.3)
2624
net-http-persistent (2.9.4)
2725
netrc (0.7.7)
26+
parallel (1.0.0)
2827
quicky (0.4.0)
29-
rake (10.1.1)
28+
rake (10.3.0)
3029
rest (2.7.1)
3130
net-http-persistent (>= 2.9.1)
3231
rest_client (>= 1.7.1)
33-
rest_client (1.7.2)
32+
rest_client (1.7.3)
3433
netrc (~> 0.7.7)
35-
rubyzip (1.1.0)
34+
rubyzip (0.9.9)
3635
test-unit (2.5.5)
37-
typhoeus (0.6.7)
38-
ethon (~> 0.6.2)
36+
typhoeus (0.6.8)
37+
ethon (>= 0.7.0)
3938
uber_config (1.1.1)
4039

4140
PLATFORMS
@@ -48,6 +47,7 @@ DEPENDENCIES
4847
iron_worker_ng
4948
minitest
5049
net-http-persistent
50+
parallel
5151
quicky
5252
rake
5353
test-unit

iron_mq.gemspec

+1
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@ Gem::Specification.new do |gem|
2929
gem.add_development_dependency "quicky"
3030
gem.add_development_dependency "iron_worker_ng"
3131
gem.add_development_dependency "go"
32+
gem.add_development_dependency "parallel"
3233
end
3334

test/test_iron_mq.rb

+33-5
Original file line numberDiff line numberDiff line change
@@ -676,20 +676,48 @@ def test_queue_set_info
676676
end
677677

678678
def test_dequeue_delete
679-
queue_name = "test_dequeue_delete_#{Time.now.to_i}"
679+
queue_name = "test_dequeue_delete_3"
680680
clear_queue(queue_name)
681681
queue = @client.queue(queue_name)
682682
v = "hello thou shalt only see me once"
683683
queue.post(v)
684-
msg = queue.get(delete: true, timeout: 30)
685-
assert_equal msg.body, "hello thou shalt only see me once"
684+
assert_equal 1, queue.reload.size
685+
msg = queue.get(delete: true, timeout: 7)
686+
assert_equal v, msg.body
686687
sleep 1
687688
# get the queue again
688689
queue = @client.queue(queue_name)
689690
assert_equal 0, queue.size
690-
sleep 31
691+
sleep 10
692+
msg = queue.get
693+
assert_nil msg
694+
end
695+
696+
def test_long_polling
697+
queue_name = "test_long_polling"
698+
clear_queue(queue_name)
699+
queue = @client.queue(queue_name)
691700
msg = queue.get
692-
assert_equal nil, msg
701+
assert_nil msg
702+
v = "hello long"
703+
# ok, nothing in the queue, let's do a long poll
704+
thr = Thread.new {
705+
sleep 5
706+
puts "Posting now"
707+
begin
708+
queue.post(v)
709+
rescue Exception => ex
710+
p ex
711+
end
712+
713+
}
714+
puts "Now going to wait for it..."
715+
msg = queue.get(wait: 20)
716+
p msg
717+
assert_not_nil msg
718+
assert_equal v, msg.body
719+
msg.delete
720+
693721
end
694722
end
695723

test/tmp.rb

+3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
gem 'test-unit'
22
require 'test/unit'
33
require 'yaml'
4+
require 'parallel'
45
require_relative 'test_base'
56

67
class TmpTests < TestBase
@@ -10,5 +11,7 @@ def setup
1011
end
1112

1213

14+
15+
1316
end
1417

0 commit comments

Comments
 (0)