mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[ec2] consolidated shindo tests for volumes
This commit is contained in:
parent
af8318707a
commit
b8823a7c8f
4 changed files with 123 additions and 10 deletions
|
@ -46,6 +46,38 @@ module AWS
|
|||
'return' => ::Fog::Boolean
|
||||
}
|
||||
|
||||
VOLUME = {
|
||||
'availabilityZone' => String,
|
||||
'createTime' => Time,
|
||||
'requestId' => String,
|
||||
'size' => Integer,
|
||||
'snapshotId' => NilClass,
|
||||
'status' => String,
|
||||
'volumeId' => String
|
||||
}
|
||||
|
||||
VOLUME_ATTACHMENT = {
|
||||
'attachTime' => Time,
|
||||
'device' => String,
|
||||
'instanceId' => String,
|
||||
'requestId' => String,
|
||||
'status' => String,
|
||||
'volumeId' => String
|
||||
}
|
||||
|
||||
VOLUMES = {
|
||||
'volumeSet' => [{
|
||||
'availabilityZone' => String,
|
||||
'attachmentSet' => [],
|
||||
'createTime' => Time,
|
||||
'size' => Integer,
|
||||
'snapshotId' => NilClass,
|
||||
'status' => String,
|
||||
'volumeId' => String
|
||||
}],
|
||||
'requestId' => String
|
||||
}
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Shindo.tests('AWS::EC2', ['aws']) do
|
||||
Shindo.tests('AWS::EC2 | address requests', ['aws']) do
|
||||
|
||||
@server = AWS[:ec2].servers.create(:image_id => GENTOO_AMI)
|
||||
@server.wait_for { ready? }
|
||||
|
@ -68,11 +68,8 @@ Shindo.tests('AWS::EC2', ['aws']) do
|
|||
end
|
||||
|
||||
test("#disassociate_addresses('127.0.0.1') raises BadRequest error") do
|
||||
begin
|
||||
has_error(Excon::Errors::BadRequest) do
|
||||
AWS[:ec2].disassociate_address('127.0.0.1')
|
||||
false
|
||||
rescue Excon::Errors::BadRequest
|
||||
true
|
||||
end
|
||||
end
|
||||
|
83
tests/aws/requests/ec2/volume_tests.rb
Normal file
83
tests/aws/requests/ec2/volume_tests.rb
Normal file
|
@ -0,0 +1,83 @@
|
|||
Shindo.tests('AWS::EC2 | volume requests', ['aws']) do
|
||||
|
||||
@server = AWS[:ec2].servers.create(:image_id => GENTOO_AMI)
|
||||
@server.wait_for { ready? }
|
||||
|
||||
tests('success') do
|
||||
|
||||
@volume_id = nil
|
||||
|
||||
test('#create_volume') do
|
||||
@data = AWS[:ec2].create_volume(@server.availability_zone, 1).body
|
||||
@volume_id = @data['volumeId']
|
||||
has_format(@data, AWS::EC2::Formats::VOLUME)
|
||||
end
|
||||
|
||||
test('#describe_volumes') do
|
||||
@data = AWS[:ec2].describe_volumes.body
|
||||
has_format(@data, AWS::EC2::Formats::VOLUMES)
|
||||
end
|
||||
|
||||
test("#describe_volumes(#{@volume_id})") do
|
||||
@data = AWS[:ec2].describe_volumes.body
|
||||
has_format(@data, AWS::EC2::Formats::VOLUMES)
|
||||
end
|
||||
|
||||
test("#attach_volume(#{@server.identity}, #{@volume_id}, '/dev/sdh')") do
|
||||
@data = AWS[:ec2].attach_volume(@server.identity, @volume_id, '/dev/sdh').body
|
||||
has_format(@data, AWS::EC2::Formats::VOLUME_ATTACHMENT)
|
||||
end
|
||||
|
||||
test("#detach_volume('#{@volume_id}')") do
|
||||
@data = AWS[:ec2].detach_volume(@volume_id).body
|
||||
has_format(@data, AWS::EC2::Formats::VOLUME_ATTACHMENT)
|
||||
end
|
||||
|
||||
test("#delete_volume('#{@volume_id}')") do
|
||||
AWS[:ec2].volumes.get(@volume_id).wait_for { ready? }
|
||||
@data = AWS[:ec2].delete_volume(@volume_id).body
|
||||
has_format(@data, AWS::EC2::Formats::BASIC)
|
||||
end
|
||||
|
||||
end
|
||||
tests ('failure') do
|
||||
|
||||
@volume = AWS[:ec2].volumes.create(:availability_zone => @server.availability_zone, :size => 1)
|
||||
|
||||
test("#describe_volume('vol-00000000') raises BadRequest error") do
|
||||
has_error(Excon::Errors::BadRequest) do
|
||||
AWS[:ec2].describe_volumes('vol-00000000')
|
||||
end
|
||||
end
|
||||
|
||||
test("#attach_volume('i-00000000', '#{@volume.identity}', '/dev/sdh') raises BadRequest error") do
|
||||
has_error(Excon::Errors::BadRequest) do
|
||||
AWS[:ec2].attach_volume('i-00000000', @volume.identity, '/dev/sdh')
|
||||
end
|
||||
end
|
||||
|
||||
test("#attach_volume('#{@server.identity}', 'vol-00000000', '/dev/sdh') raises BadRequest error") do
|
||||
has_error(Excon::Errors::BadRequest) do
|
||||
AWS[:ec2].attach_volume(@server.identity, 'vol-00000000', '/dev/sdh')
|
||||
end
|
||||
end
|
||||
|
||||
test("#detach_volume('vol-00000000') raises BadRequest error") do
|
||||
has_error(Excon::Errors::BadRequest) do
|
||||
AWS[:ec2].detach_volume('vol-00000000')
|
||||
end
|
||||
end
|
||||
|
||||
test("#delete_volume('vol-00000000') raises BadRequest error") do
|
||||
has_error(Excon::Errors::BadRequest) do
|
||||
AWS[:ec2].delete_volume('vol-00000000')
|
||||
end
|
||||
end
|
||||
|
||||
@volume.destroy
|
||||
|
||||
end
|
||||
|
||||
@server.destroy
|
||||
|
||||
end
|
|
@ -5,7 +5,7 @@ if ENV["FOG_MOCK"] == "true"
|
|||
Fog.mock!
|
||||
end
|
||||
|
||||
def has_error(description, error, &block)
|
||||
def has_error(error, &block)
|
||||
begin
|
||||
yield
|
||||
@formatador.display_line("[red]did not raise #{error}[/]")
|
||||
|
@ -15,13 +15,14 @@ def has_error(description, error, &block)
|
|||
end
|
||||
end
|
||||
|
||||
# TODO: Currently is true even if some of the keys in format do not appear
|
||||
def has_format(original_data, format)
|
||||
def has_format(original_data, original_format)
|
||||
valid = true
|
||||
data = original_data.dup
|
||||
format = original_format.dup
|
||||
for key, value in format
|
||||
valid &&= data.has_key?(key)
|
||||
datum = data.delete(key)
|
||||
format.delete(key)
|
||||
case value
|
||||
when Array
|
||||
valid &&= datum.is_a?(Array)
|
||||
|
@ -40,9 +41,9 @@ def has_format(original_data, format)
|
|||
valid &&= datum.is_a?(value)
|
||||
end
|
||||
end
|
||||
valid &&= data.empty?
|
||||
valid &&= data.empty? && format.empty?
|
||||
unless valid
|
||||
@formatador.display_line("[red]#{original_data.inspect} does not match #{format.inspect}[/]")
|
||||
@formatador.display_line("[red]#{original_data.inspect} does not match #{original_format.inspect}[/]")
|
||||
end
|
||||
valid
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue