SQS 0.1.6 → 0.1.7
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.
- data/CHANGELOG +7 -0
- data/lib/sqs.rb +19 -0
- data/test/unit/sqs_queue_test.rb +9 -7
- data/test/unit/sqs_test.rb +31 -1
- data/test/unit/test_conf.yml +2 -0
- data/test/unit/test_setup.rb +9 -8
- metadata +4 -2
data/CHANGELOG
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
0.1.7
|
2
|
+
2008-02-21
|
3
|
+
* You can now call SQS.conf_file = 'some_file.yml' to set access_key_id and
|
4
|
+
secret_access_key. SQS assumes this file is YAML. This way, you don't have to
|
5
|
+
store your AWS credentials in your code (and I don't run the risk of committing
|
6
|
+
my credentials to SVN every time I do a commit!).
|
7
|
+
|
1
8
|
0.1.6
|
2
9
|
2008-02-19
|
3
10
|
* Maintenance release to keep up with Amazon SQS API changes. All but one test should be
|
data/lib/sqs.rb
CHANGED
@@ -8,6 +8,7 @@ require 'erb'
|
|
8
8
|
require 'net/http'
|
9
9
|
require 'openssl'
|
10
10
|
require 'rexml/document'
|
11
|
+
require 'yaml'
|
11
12
|
#include Digest
|
12
13
|
include ERB::Util
|
13
14
|
|
@@ -48,6 +49,23 @@ class SQS
|
|
48
49
|
def self.secret_access_key
|
49
50
|
@@secret_access_key
|
50
51
|
end
|
52
|
+
|
53
|
+
# Expects YAML
|
54
|
+
def self.conf_file=( path )
|
55
|
+
@@conf_file = File.expand_path( path )
|
56
|
+
settings = YAML.load_file( @@conf_file )
|
57
|
+
%w{ access_key_id secret_access_key }.each do |attr|
|
58
|
+
self.send( "#{attr}=", settings[attr] )
|
59
|
+
end
|
60
|
+
rescue
|
61
|
+
# Warn, but continue operation
|
62
|
+
warn "\n\nWARNING:\n#{$!.message}\n(Check #{caller[0]})"
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.conf_file
|
66
|
+
@@conf_file
|
67
|
+
end
|
68
|
+
|
51
69
|
def self.url_for_auery=( u )
|
52
70
|
@@url_for_query = u
|
53
71
|
end
|
@@ -208,6 +226,7 @@ class SQS
|
|
208
226
|
protected
|
209
227
|
@@retry_attempts = 10;
|
210
228
|
@@counter = 0;
|
229
|
+
@@conf_file = ''
|
211
230
|
@@secret_access_key = 'Replace this with your secret access key'
|
212
231
|
@@access_key_id = 'Replace this with your access key id'
|
213
232
|
@@url_for_query = 'http://queue.amazonaws.com/'
|
data/test/unit/sqs_queue_test.rb
CHANGED
@@ -115,12 +115,14 @@ class SQS_QueueTest < Test::Unit::TestCase
|
|
115
115
|
@q.delete!
|
116
116
|
end
|
117
117
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
118
|
+
assert_statistically( :of => 3, :after => lambda{ |i,s| sleep 3 } ) do
|
119
|
+
begin
|
120
|
+
q = SQS.get_queue( @queue_prefix )
|
121
|
+
rescue
|
122
|
+
'SQS::UnavailableQueue' == $!.class.name
|
123
|
+
else
|
124
|
+
false
|
125
|
+
end
|
124
126
|
end
|
125
127
|
end
|
126
128
|
|
@@ -407,7 +409,7 @@ class SQS_QueueTest < Test::Unit::TestCase
|
|
407
409
|
end
|
408
410
|
|
409
411
|
assert @q.add_grant( :email => SQStest.other_aws_account[:email], :permission => :full )
|
410
|
-
assert_statistically( :of => 6, :after => lambda{ |i,s| sleep 5 } ) do
|
412
|
+
assert_statistically( :of => 6, :after => lambda{ |i,s| sleep i < 5 ? 5 : 10 } ) do
|
411
413
|
grants = @q.list_grants
|
412
414
|
4 == grants.size
|
413
415
|
end
|
data/test/unit/sqs_test.rb
CHANGED
@@ -24,14 +24,23 @@ class SQSTest < Test::Unit::TestCase
|
|
24
24
|
|
25
25
|
@used_prefixes[@queue_prefix] = true
|
26
26
|
|
27
|
-
|
27
|
+
unless SQStest.skip_live_tests?
|
28
|
+
@original_access_key_id = SQS.access_key_id
|
29
|
+
@original_secret_access_key = SQS.secret_access_key
|
30
|
+
|
31
|
+
@q = SQS.create_queue( @queue_prefix )
|
32
|
+
end
|
28
33
|
|
29
34
|
SQS.add_reasons_to_retry 'ServiceUnavailable'
|
30
35
|
SQS.remove_reasons_to_retry( SQS.reasons_to_retry.reject { |r| r == 'ServiceUnavailable' } )
|
31
36
|
SQS.retry_attempts = 10
|
37
|
+
|
32
38
|
end
|
33
39
|
def teardown
|
34
40
|
unless SQStest.skip_live_tests?
|
41
|
+
SQS.access_key_id = @original_access_key_id
|
42
|
+
SQS.secret_access_key = @original_secret_access_key
|
43
|
+
|
35
44
|
SQS.list_queues( @queue_prefix ).each do |q|
|
36
45
|
begin
|
37
46
|
q.delete! if q.exists?
|
@@ -42,6 +51,7 @@ class SQSTest < Test::Unit::TestCase
|
|
42
51
|
end
|
43
52
|
end
|
44
53
|
print SQS.counter if SQStest.print_counter?
|
54
|
+
|
45
55
|
end
|
46
56
|
|
47
57
|
unless SQStest.skip_live_tests?
|
@@ -122,6 +132,26 @@ class SQSTest < Test::Unit::TestCase
|
|
122
132
|
end
|
123
133
|
end
|
124
134
|
|
135
|
+
def test_bad_conf_file
|
136
|
+
assert_nothing_raised do
|
137
|
+
SQS.conf_file = 'Should-not-exist.ext'
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
def test_good_conf_file
|
142
|
+
f = File.expand_path( File.join( File.dirname( __FILE__ ), 'test_conf.yml' ) )
|
143
|
+
|
144
|
+
assert_not_equal f, SQS.conf_file
|
145
|
+
assert_not_equal 'number 5', SQS.access_key_id
|
146
|
+
assert_not_equal 'is alive', SQS.secret_access_key
|
147
|
+
|
148
|
+
SQS.conf_file = File.join( File.dirname( __FILE__ ), 'test_conf.yml' )
|
149
|
+
|
150
|
+
assert_equal f, SQS.conf_file
|
151
|
+
assert_equal 'number 5', SQS.access_key_id
|
152
|
+
assert_equal 'is alive', SQS.secret_access_key
|
153
|
+
end
|
154
|
+
|
125
155
|
def test_get_exception_class
|
126
156
|
assert_raises ArgumentError do
|
127
157
|
SQS.get_exception_class
|
data/test/unit/test_setup.rb
CHANGED
@@ -10,20 +10,20 @@ class SQStest
|
|
10
10
|
def self.print_counter? ; false ; end
|
11
11
|
def self.my_aws_account ; { :email => 'Replace this with your AWS account email address', :display_name => 'Replace this with your AWS display name' } ; end
|
12
12
|
def self.other_aws_account ; { :email => 'Replace this with another valid AWS account email address', :display_name => 'Replace this with another valid AWS display name' } ; end
|
13
|
-
def self.secret_access_key ; 'Replace this with your secret access key' ; end
|
14
|
-
def self.access_key_id ; 'Replace this with your access key id' ; end
|
15
13
|
end
|
16
|
-
# End change these settings
|
17
|
-
#############################
|
18
14
|
|
15
|
+
# Uncomment these lines to set up your access_key_id and secret_access_key (not the preferred method)
|
16
|
+
# SQS.access_key_id = ''
|
17
|
+
# SQS.secret_access_key = ''
|
19
18
|
|
19
|
+
# Uncomment this line to point SQS to a YAML file containing your
|
20
|
+
# access_key_id and secret_access_key (the preferred method)
|
21
|
+
SQS.conf_file = "~/aws.yml"
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
+
# End change these settings
|
24
|
+
#############################
|
23
25
|
|
24
26
|
good = Hash.new
|
25
|
-
good[:access_key_id] = SQS.access_key_id != 'Replace this with your access key id'
|
26
|
-
good[:secret_access_key] = SQS.secret_access_key != 'Replace this with your secret access key'
|
27
27
|
good[:my_aws_email] = SQStest.my_aws_account[:email] != 'Replace this with your AWS account email address'
|
28
28
|
good[:my_aws_display_name] = SQStest.my_aws_account[:display_name] != 'Replace this with your AWS display name'
|
29
29
|
good[:other_aws_email] = SQStest.other_aws_account[:email] != 'Replace this with another valid AWS account email address'
|
@@ -31,6 +31,7 @@ good[:other_aws_display_name] = SQStest.other_aws_account[:display_name] != 'Rep
|
|
31
31
|
|
32
32
|
message = good.reject{ |k,v| v }.keys.collect{ |k| k.to_s.gsub( /_/, ' ' ) }.join(", ")
|
33
33
|
|
34
|
+
|
34
35
|
unless message.to_s.empty?
|
35
36
|
puts "\nWHOOPS: In order to run these tests, please change the #{ message.index(',') ? 'values' : 'value' } of #{message} in #{File.expand_path( __FILE__ )}\n\n"
|
36
37
|
exit
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: SQS
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zach Holt
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-02-
|
12
|
+
date: 2008-02-21 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -34,6 +34,7 @@ files:
|
|
34
34
|
- test/unit/sqs_queue_test.rb
|
35
35
|
- test/unit/sqs_test.rb
|
36
36
|
- test/unit/test_setup.rb
|
37
|
+
- test/unit/test_conf.yml
|
37
38
|
- README
|
38
39
|
- MIT-LICENSE
|
39
40
|
- CHANGELOG
|
@@ -70,3 +71,4 @@ test_files:
|
|
70
71
|
- test/unit/sqs_queue_test.rb
|
71
72
|
- test/unit/sqs_test.rb
|
72
73
|
- test/unit/test_setup.rb
|
74
|
+
- test/unit/test_conf.yml
|