propono 1.4.0 → 1.5.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/propono/services/queue_creator.rb +9 -3
- data/lib/propono/version.rb +1 -1
- data/test/components/queue_subscription_test.rb +1 -1
- data/test/services/queue_creator_test.rb +24 -4
- data/test/test_helper.rb +9 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebd5041633b366a91b045b834a08db2bcb2df8e4
|
4
|
+
data.tar.gz: c09df86c5c5de0b9d4322bf91ed28c894217231e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 441f02bdbe0d8cca77f73405330bccf7fdb3e3c1f304fb45c274bc84e95c892030042127a304720b86ec703b6c4ca2319e529567b339096a648b25880f8a33c2
|
7
|
+
data.tar.gz: 438ac5c85ccfba9774141eba4e9ad42b405e47d0adec8bb033f0415aa19551f36e6326c46df58deb871170a4ce6feb1866cefdd8bb409ea6ecd8a7fce7a5dd95
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
# 1.5.0 / 2015-03-16
|
2
|
+
* [BUGFIX] Fix inability to use queue if the message visibility timeout has changed.
|
3
|
+
|
1
4
|
# 1.4.0 / 2014-07-12
|
2
5
|
* [FEATURE] Move symbolize_keys to Propono namespace to avoid ActiveSupport conflict (:blue_heart: @tardate)
|
3
6
|
* [BUGFIX] Drain integration tests drain queues before starting (:blue_heart: @tardate)
|
@@ -14,9 +14,15 @@ module Propono
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def find_or_create
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
urls = sqs.list_queues("QueueNamePrefix" => @name).body["QueueUrls"]
|
18
|
+
url = urls.select{|x|x =~ /#{@name}$/}.first
|
19
|
+
|
20
|
+
unless url
|
21
|
+
result = sqs.create_queue(@name)
|
22
|
+
body = result.body
|
23
|
+
url = body.fetch('QueueUrl') { raise QueueCreatorError.new("No QueueUrl returned from SQS") }
|
24
|
+
end
|
25
|
+
|
20
26
|
Queue.new(url)
|
21
27
|
end
|
22
28
|
end
|
data/lib/propono/version.rb
CHANGED
@@ -31,7 +31,7 @@ module Propono
|
|
31
31
|
|
32
32
|
queue_name = subscription.send(:queue_name)
|
33
33
|
|
34
|
-
sqs =
|
34
|
+
sqs = Fog::AWS::SQS::Mock.new
|
35
35
|
sqs.expects(:create_queue).with(queue_name).returns(mock(body: {'QueueUrl' => Fog::AWS::SQS::Mock::QueueUrl}))
|
36
36
|
sqs.expects(:create_queue).with(queue_name + '-failed').returns(mock(body: {'QueueUrl' => Fog::AWS::SQS::Mock::QueueUrl}))
|
37
37
|
sqs.expects(:create_queue).with(queue_name + '-corrupt').returns(mock(body: {'QueueUrl' => Fog::AWS::SQS::Mock::QueueUrl}))
|
@@ -3,8 +3,26 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
module Propono
|
4
4
|
class QueueCreatorTest < Minitest::Test
|
5
5
|
|
6
|
-
def
|
7
|
-
|
6
|
+
def test_finds_existing_url
|
7
|
+
name = "foobar"
|
8
|
+
url = "http://#{name}"
|
9
|
+
sqs = Fog::AWS::SQS::Mock.new
|
10
|
+
sqs.stubs(:list_queues)
|
11
|
+
sqs.expects(:list_queues).
|
12
|
+
with("QueueNamePrefix" => "#{name}").
|
13
|
+
returns(
|
14
|
+
mock(body: { "QueueUrls" => [url]})
|
15
|
+
)
|
16
|
+
|
17
|
+
creator = QueueCreator.new(name)
|
18
|
+
creator.stubs(sqs: sqs)
|
19
|
+
|
20
|
+
queue = creator.find_or_create
|
21
|
+
assert_equal url, queue.url
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_create_queue_called_on_sqs
|
25
|
+
sqs = Fog::AWS::SQS::Mock.new
|
8
26
|
sqs.expects(:create_queue).with("foobar").returns(mock(body: { "QueueUrl" => "Foobar"}))
|
9
27
|
|
10
28
|
creator = QueueCreator.new("foobar")
|
@@ -16,7 +34,8 @@ module Propono
|
|
16
34
|
def test_returns_url
|
17
35
|
url = "malcs_happy_queue"
|
18
36
|
result = mock(body: { "QueueUrl" => url})
|
19
|
-
sqs =
|
37
|
+
sqs = Fog::AWS::SQS::Mock.new
|
38
|
+
sqs.expects(create_queue: result)
|
20
39
|
|
21
40
|
creator = QueueCreator.new("foobar")
|
22
41
|
creator.stubs(sqs: sqs)
|
@@ -27,7 +46,8 @@ module Propono
|
|
27
46
|
|
28
47
|
def test_should_raise_exception_if_no_queue_returned
|
29
48
|
result = mock(body: {})
|
30
|
-
sqs =
|
49
|
+
sqs = Fog::AWS::SQS::Mock.new
|
50
|
+
sqs.expects(create_queue: result)
|
31
51
|
|
32
52
|
creator = QueueCreator.new("foobar")
|
33
53
|
creator.stubs(sqs: sqs)
|
data/test/test_helper.rb
CHANGED
@@ -46,6 +46,15 @@ class Fog::AWS::SNS::Mock
|
|
46
46
|
end
|
47
47
|
|
48
48
|
class Fog::AWS::SQS::Mock
|
49
|
+
def list_queues(*args)
|
50
|
+
foo = Object.new
|
51
|
+
class << foo
|
52
|
+
def body
|
53
|
+
{"QueueUrls" => []}
|
54
|
+
end
|
55
|
+
end
|
56
|
+
foo
|
57
|
+
end
|
49
58
|
def create_queue(*args)
|
50
59
|
end
|
51
60
|
def set_queue_attributes(*args)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: propono
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MalcyL
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-03-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fog
|