forked from abandoned/ruby-aaws
-
Notifications
You must be signed in to change notification settings - Fork 1
/
tc_aws.rb
160 lines (124 loc) · 3.77 KB
/
tc_aws.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# $Id: tc_aws.rb,v 1.15 2010/02/20 23:59:02 ianmacd Exp $
#
require 'test/unit'
require './setup'
require 'fileutils'
require 'tmpdir'
require 'amazon/locale'
class TestAWSBasics < AWSTest
CACHE_DIR = Amazon::AWS::Cache::DEFAULT_CACHE_DIR
CACHE_PATH = File.join( Dir.tmpdir, 'aws_cache' )
def test_version
v = '1.8.6'
assert( RUBY_VERSION >= v, "Ruby version is lower than #{v}." )
end
def test_cache
# Assure we can create a cache with a non-default path.
#
c = Cache.new( CACHE_PATH )
assert( CACHE_PATH, c.path )
assert( File.directory?( c.path ) )
FileUtils.rmdir( c.path )
c = Cache.new
# Ensure that default cache path has been chosen.
#
assert( CACHE_DIR, c.path )
# Ensure that cache directory has been created.
#
assert( File.directory?( c.path ) )
f = File.join( c.path, 'foobar' )
# Just over a day ago.
#
t = Time.now - 86460
FileUtils.touch f, { :mtime => t }
assert( File.exist?( f ) )
# Ensure expired file is properly flushed.
#
c.flush_expired
assert( ! File.exist?( f ) )
FileUtils.touch f
assert( File.exist?( f ) )
# Ensure unexpired file is properly retained.
#
c.flush_expired
assert( File.exist?( f ) )
# Ensure file is properly flushed.
#
c.flush_all
assert( ! File.exist?( f ) )
h = Help.new( :ResponseGroup, :Large )
h_rg = ResponseGroup.new( :Help )
h.response_group = h_rg
# Ensure that file is not cached when no cache is desired.
#
@req.cache = false
resp = @req.search( h )
assert_equal( 0, Dir.glob( File.join( c.path, '*' ) ).size )
# Ensure that file is cached when cache is desired.
#
@req.cache = c
resp = @req.search( h )
assert_equal( 1, Dir.glob( File.join( c.path, '*' ) ).size )
# Flush it away.
#
c.flush_all
assert_equal( 0, Dir.glob( File.join( c.path, '*' ) ).size )
FileUtils.rmdir( c.path )
# Turn off caching for future tests. This happens in the setup method,
# anyway, but it can't hurt to tidy up after ourselves.
#
@req.cache = false
end
def test_config
# Test bad quoting.
#
assert_raise( Amazon::Config::ConfigError ) do
cf = Amazon::Config.new( <<' EOF' )
bad_syntax = 'bad quotes"
EOF
end
# Test good quoting.
#
assert_nothing_raised do
cf = Amazon::Config.new( <<' EOF' )
good_syntax = 'good quotes'
EOF
end
# Test that config files are properly read from $AMAZONRC.
#
Dir.mktmpdir do |td|
# First save old locations, in case they're not the default.
#
old_rcdir = ENV['AMAZONRCDIR']
old_rc_file = ENV['AMAZONRCFILE']
ENV['AMAZONRCDIR'] = td
ENV['AMAZONRCFILE'] = '.user_defined_name'
File.open( File.join( td, '.user_defined_name' ), 'w' ) do |tf|
tf.puts( 'foo = bar' )
end
cf = Amazon::Config.new
assert_equal( 'bar', cf['foo'] )
# Restore old locations.
#
ENV['AMAZONRCDIR'] = old_rcdir
ENV['AMAZONRCFILE'] = old_rc_file
end
end
def test_exceptions
assert_raise( Amazon::AWS::HTTPError ) { raise Amazon::AWS::HTTPError }
end
include Amazon
def test_geo
require 'net/geoip'
assert_equal( 'de', Locale.get_locale_by_name( 'www.marxer.org' ) )
assert_equal( 'jp', Locale.get_locale_by_name( 'ruby-lang.org' ) )
assert_equal( 'uk', Locale.get_locale_by_name( 'xs1.xs4all.nl' ) )
assert_equal( 'uk', Locale.get_locale_by_name( 'caliban.org' ) )
assert_equal( 'us', Locale.get_locale_by_name( 'google.com' ) )
# Ensure non-existent hostname causes an Amazon::Locale::GeoError.
#
assert_raise( Amazon::Locale::GeoError ) do
Locale.get_locale_by_name( 'marxer.org' )
end
end
end