1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

Merge pull request #1918 from rackspace/fix_tests

[rackspace] fixing broken tests
This commit is contained in:
Kyle Rames 2013-07-01 07:39:59 -07:00
commit fb60a31ce0
14 changed files with 101 additions and 93 deletions

View file

@ -14,7 +14,7 @@ module Fog
network_id = Fog::Rackspace::MockData.uuid
flavor = {
"OS-FLV-DISABLED:disabled" => false,
"OS-FLV-EXT-DATA:ephemeral" => 4,
"disk" => 20,
"id" => flavor_id,
"links" => [
@ -89,8 +89,8 @@ module Fog
}
#Block Storage
volume_type1_id = Fog::Mock.random_numbers(3).to_i
volume_type2_id = Fog::Mock.random_numbers(3).to_i
volume_type1_id = Fog::Mock.random_numbers(3).to_s
volume_type2_id = Fog::Mock.random_numbers(3).to_s
volume_type1 = {
"id" => volume_type1_id,

View file

@ -1,6 +1,11 @@
module Shindo
class Tests
unless Fog.mocking?
Fog.timeout = 2000
Fog::Logger.warning "Setting default fog timeout to #{Fog.timeout} seconds"
end
def given_a_load_balancer_service(&block)
@service = Fog::Rackspace::LoadBalancers.new
instance_eval(&block)
@ -23,6 +28,12 @@ module Shindo
end
end
def wait_for_request(description = "waiting", &block)
return if Fog.mocking?
tests(description) do
Fog.wait_for &block
end
end
def wait_for_server_deletion(server)
return if Fog.mocking?

View file

@ -4,7 +4,7 @@ Shindo.tests('Fog::Rackspace::BlockStorage | volume', ['rackspace']) do
options = { :display_name => "fog_#{Time.now.to_i.to_s}", :size => 100 }
model_tests(service.volumes, options, true) do
@instance.wait_for(timeout=1200) { ready? }
@instance.wait_for{ ready? }
tests('double save').raises(Fog::Rackspace::BlockStorage::IdentifierTaken) do
@instance.save
@ -18,7 +18,7 @@ Shindo.tests('Fog::Rackspace::BlockStorage | volume', ['rackspace']) do
tests('#snapshots').succeeds do
begin
snapshot = @instance.create_snapshot
snapshot.wait_for(timeout=1200) { ready? }
snapshot.wait_for { ready? }
returns(true) { @instance.snapshots.first.id == snapshot.id }
ensure

View file

@ -11,7 +11,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata', ['rackspace']) do
:flavor_id => rackspace_test_flavor_id(service),
:image_id => rackspace_test_image_id(service))
@server.wait_for(timeout=1500) { ready? }
@server.wait_for { ready? }
tests('server') do
collection_tests(@server.metadata, {:key => 'my_key', :value => 'my_value'}) do
@ -21,7 +21,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata', ['rackspace']) do
tests('image') do
@image = @server.create_image("fog_image_#{test_time}", :metadata => {:my_key => 'my_value'})
@image.wait_for(timeout = 1500) { ready? }
@image.wait_for { ready? }
tests("#all").succeeds do
pending if Fog.mocking? && !mocks_implemented
metadata = @image.metadata.all

View file

@ -66,7 +66,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
end
model_tests(service.servers, options, true) do
@instance.wait_for(timeout=1500) { ready? }
@instance.wait_for { ready? }
tests('#metadata[\'fog_test\']').returns('true') do
@instance.metadata['fog_test']
@ -79,12 +79,12 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
tests('#update').succeeds do
@instance.name = "fog_server_update"
@instance.access_ipv4_address= "10.10.0.1"
@instance.access_ipv6_address= "0:0:0:0:0:0:0:1"
@instance.access_ipv6_address= "::1"
@instance.save
sleep 60 unless Fog.mocking?
@instance.reload
returns("10.10.0.1") { @instance.access_ipv4_address }
returns("0:0:0:0:0:0:0:1") { @instance.access_ipv6_address }
returns("::1") { @instance.access_ipv6_address }
returns("fog_server_update") { @instance.name }
end
@ -93,13 +93,13 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
returns('REBOOT') { @instance.state }
end
@instance.wait_for(timeout=1500) { ready? }
@instance.wait_for { ready? }
tests('#reboot("HARD")').succeeds do
@instance.reboot('HARD')
returns('HARD_REBOOT') { @instance.state }
end
@instance.wait_for(timeout=1500) { ready? }
@instance.wait_for { ready? }
@test_image = nil
begin
tests('#create_image').succeeds do
@ -112,7 +112,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
end
sleep 30 unless Fog.mocking?
@instance.wait_for(timeout=1500) { ready? }
@instance.wait_for { ready? }
sleep 60 unless Fog.mocking?
tests('#rebuild').succeeds do
@instance.rebuild rackspace_test_image_id(service)
@ -120,7 +120,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
end
sleep 30 unless Fog.mocking?
@instance.wait_for(timeout=1500) { ready? }
@instance.wait_for { ready? }
sleep 60 unless Fog.mocking?
tests('#resize').succeeds do
@instance.resize(3)
@ -128,37 +128,37 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
end
sleep 30 unless Fog.mocking?
@instance.wait_for(timeout=1500) { ready?('VERIFY_RESIZE', ['ACTIVE', 'ERROR']) }
@instance.wait_for { ready?('VERIFY_RESIZE', ['ACTIVE', 'ERROR']) }
sleep 60 unless Fog.mocking?
tests('#confirm_resize').succeeds do
@instance.confirm_resize
end
sleep 30 unless Fog.mocking?
@instance.wait_for(timeout=1500) { ready? }
@instance.wait_for { ready? }
sleep 60 unless Fog.mocking?
tests('#resize').succeeds do
@instance.resize(2)
returns('RESIZE') { @instance.state }
end
@instance.wait_for(timeout=1500) { ready?('VERIFY_RESIZE') }
@instance.wait_for { ready?('VERIFY_RESIZE') }
sleep 60 unless Fog.mocking?
tests('#revert_resize').succeeds do
@instance.revert_resize
end
@instance.wait_for(timeout=1500) { ready? }
@instance.wait_for { ready? }
tests('#rescue').succeeds do
@instance.rescue
end
@instance.wait_for(timeout=1500) { ready?('RESCUE') }
@instance.wait_for { ready?('RESCUE') }
tests('#unrescue').succeeds do
@instance.unrescue
end
@instance.wait_for(timeout=1500) { ready? }
@instance.wait_for { ready? }
tests('#change_admin_password').succeeds do
@instance.change_admin_password('somerandompassword')
returns('PASSWORD') { @instance.state }
@ -168,28 +168,29 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
tests('attachments') do
begin
@volume = cbs_service.volumes.create(:size => 100, :display_name => "fog-#{Time.now.to_i.to_s}")
@volume.wait_for(timeout=1500) { ready? }
@volume.wait_for { ready? }
tests('#attach_volume').succeeds do
@instance.attach_volume(@volume)
end
tests('#attachments').returns(true) do
@instance.wait_for(timeout=1500) do
@instance.wait_for do
!attachments.empty?
end
@instance.attachments.any? {|a| a.volume_id == @volume.id }
end
ensure
@volume.wait_for(timeout=1500) { !attachments.empty? }
@volume.wait_for { !attachments.empty? }
@instance.attachments.each {|a| a.detach }
@volume.wait_for(timeout=1500) { ready? && attachments.empty? }
@volume.wait_for { ready? && attachments.empty? }
@volume.destroy if @volume
end
end
@instance.wait_for(timeout=1500) { ready? }
@instance.wait_for { ready? }
end
wait_for_server_deletion(@instance)
sleep 60 unless Fog.mocking?
tests("delete network #{@network.label}").succeeds do
@network.destroy if @network
@ -197,17 +198,17 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
#When after testing resize/resize_confirm we get a 409 when we try to resize_revert so I am going to split it into two blocks
model_tests(service.servers, options, true) do
@instance.wait_for(timeout=1500) { ready? }
@instance.wait_for { ready? }
tests('#resize').succeeds do
@instance.resize(4)
returns('RESIZE') { @instance.state }
end
@instance.wait_for(timeout=1500) { ready?('VERIFY_RESIZE') }
@instance.wait_for { ready?('VERIFY_RESIZE') }
sleep 60 unless Fog.mocking?
tests('#revert_resize').succeeds do
@instance.revert_resize
end
@instance.wait_for(timeout=1500) { ready? }
@instance.wait_for { ready? }
end
end

View file

@ -8,9 +8,8 @@ Shindo.tests('Fog::Rackspace::BlockStorage | snapshot_tests', ['rackspace']) do
'display_description' => Fog::Nullable::String,
'volume_id' => String,
'size' => Integer,
'created_at' => String,
'availability_zone' => String
}
'created_at' => String
}
get_snapshot_format = {
'snapshot' => snapshot_format

View file

@ -1,15 +1,8 @@
Shindo.tests('Fog::Rackspace::BlockStorage | volume_type_tests', ['rackspace']) do
volume_type_format = {
'name' => String,
'extra_specs' => Hash
}
list_volume_type_format = {
'volume_types' => [volume_type_format.merge({ 'id' => Integer })]
}
get_volume_type_format = {
'volume_type' => volume_type_format.merge({ 'id' => String })
'extra_specs' => Hash,
'id' => String
}
service = Fog::Rackspace::BlockStorage.new
@ -17,11 +10,11 @@ Shindo.tests('Fog::Rackspace::BlockStorage | volume_type_tests', ['rackspace'])
tests('success') do
volume_type_id = service.volume_types.first.id
tests("#list_volume_types").formats(list_volume_type_format) do
tests("#list_volume_types").formats('volume_types' => [volume_type_format]) do
service.list_volume_types.body
end
tests("#get_volume_type(#{volume_type_id})").formats(get_volume_type_format) do
tests("#get_volume_type(#{volume_type_id})").formats('volume_type' => volume_type_format) do
service.get_volume_type(volume_type_id).body
end
end

View file

@ -5,7 +5,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | address requests', ['rackspace']) do
tests('success') do
unless Fog.mocking?
@server = @service.servers.create(:flavor_id => 2, :image_id => "8a3a9f96-b997-46fd-b7a8-a9e740796ffd", :name => "address-tests-#{Time.now.to_i}")
@server.wait_for(timeout=1200) { ready? }
@server.wait_for { ready? }
@server_id = @server.id
else
@server_id = 42

View file

@ -1,9 +1,8 @@
Shindo.tests('Fog::Compute::RackspaceV2 | attachment_tests', ['rackspace']) do
compute_service = Fog::Compute::RackspaceV2.new
block_storage_service = Fog::Rackspace::BlockStorage.new
image_id = Fog.credentials[:rackspace_image_id] || compute_service.images.first.id
flavor_id = Fog.credentials[:rackspace_flavor_id] || compute_service.flavors.first.id
timeout = Fog.mocking? ? 1 : 10
image_id = rackspace_test_image_id(compute_service)
flavor_id = rackspace_test_flavor_id(compute_service)
attachment_format = {
'volumeAttachment' => {
@ -27,12 +26,12 @@ Shindo.tests('Fog::Compute::RackspaceV2 | attachment_tests', ['rackspace']) do
tests('success') do
until compute_service.get_server(server_id).body['server']['status'] == 'ACTIVE'
sleep timeout
wait_for_request("Waiting for server to become ready") do
compute_service.get_server(server_id).body['server']['status'] == 'ACTIVE'
end
until block_storage_service.get_volume(volume_id).body['volume']['status'] == 'available'
sleep timeout
wait_for_request("Waiting for Volume to be ready") do
block_storage_service.get_volume(volume_id).body['volume']['status'] == 'available'
end
tests("#attach_volume(#{server_id}, #{volume_id}, #{device_id})").formats(attachment_format) do
@ -43,8 +42,8 @@ Shindo.tests('Fog::Compute::RackspaceV2 | attachment_tests', ['rackspace']) do
compute_service.list_attachments(server_id).body
end
until block_storage_service.get_volume(volume_id).body['volume']['status'] == 'in-use'
sleep timeout
wait_for_request("Waiting for Volume to be ready") do
block_storage_service.get_volume(volume_id).body['volume']['status'] == 'in-use'
end
tests("#get_attachment(#{server_id}, #{volume_id})").formats(attachment_format) do

View file

@ -18,7 +18,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | flavor_tests', ['rackspace']) do
get_flavor_format = {
'flavor' => flavor_format.merge({
'OS-FLV-DISABLED:disabled' => Fog::Boolean,
'OS-FLV-EXT-DATA:ephemeral' => Integer,
'rxtx_factor' => Float,
'swap' => Integer
})

View file

@ -12,7 +12,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata_tests', ['rackspace']) do
:flavor_id => 2,
:image_id => '3afe97b2-26dc-49c5-a2cc-a2fc8d80c001',
:metadata => metadata)
@server.wait_for(timeout = 1500) { ready? }
@server.wait_for { ready? }
@server_id = @server.id
@ -40,12 +40,12 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata_tests', ['rackspace']) do
@service.set_metadata_item("servers", @server_id, "environment", "test").body
end
tests('delete_metadata_item').succeeds do
@service.delete_metadata_item("servers", @server_id, "environment").body
@service.delete_metadata_item("servers", @server_id, "environment")
end
end
tests("images") do
@image.wait_for(timeout = 1500) { ready? } unless Fog.mocking?
@image.wait_for { ready? } unless Fog.mocking?
tests('list_metadata').returns(metadata) do
h = @service.list_metadata("images", @image_id).body
@ -66,7 +66,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata_tests', ['rackspace']) do
@service.set_metadata_item("images", @image_id, "environment", "test").body
end
tests('delete_metadata_item').succeeds do
@service.delete_metadata_item("images", @image_id, "environment").body
@service.delete_metadata_item("images", @image_id, "environment")
end
end
ensure

View file

@ -4,33 +4,36 @@ Shindo.tests('Fog::Rackspace::Database | database_tests', ['rackspace']) do
service = Fog::Rackspace::Databases.new
instance_name = 'fog' + Time.now.to_i.to_s
instance_id = service.create_instance(instance_name, 1, 1).body['instance']['id']
until service.get_instance(instance_id).body["instance"]["status"] == 'ACTIVE'
sleep 10
begin
@instance_id = service.create_instance(instance_name, 1, 1).body['instance']['id']
wait_for_request("waiting for database to be created") do
service.get_instance(@instance_id).body["instance"]["status"] == 'ACTIVE'
end
tests('success') do
database_name = 'fogdb' + Time.now.to_i.to_s
tests("#create_database(#{@instance_id}, #{database_name})").returns(202) do
service.create_database(@instance_id, database_name).status
end
tests("#list_databases{#{@instance_id})").formats(LIST_DATABASES_FORMAT) do
service.list_databases(@instance_id).body
end
tests("#delete_database(#{@instance_id}, #{database_name})").returns(202) do
service.delete_database(@instance_id, database_name).status
end
end
tests('failure') do
tests("#create_database(#{@instance_id}, '') => Invalid Create Critera").raises(Fog::Rackspace::Databases::BadRequest) do
service.create_database(@instance_id, '')
end
end
ensure
service.delete_instance(@instance_id) if @instance_id
end
tests('success') do
database_name = 'fogdb' + Time.now.to_i.to_s
tests("#create_database(#{instance_id}, #{database_name})").succeeds do
service.create_database(instance_id, database_name).body
end
tests("#list_databases{#{instance_id})").formats(LIST_DATABASES_FORMAT) do
service.list_databases(instance_id).body
end
tests("#delete_database(#{instance_id}, #{database_name})").succeeds do
service.delete_database(instance_id, database_name)
end
end
tests('failure') do
tests("#create_database(#{instance_id}, '') => Invalid Create Critera").raises(Fog::Rackspace::Databases::BadRequest) do
service.create_database(instance_id, '')
end
end
service.delete_instance(instance_id)
end

View file

@ -6,24 +6,24 @@ Shindo.tests('Fog::Rackspace::Database | user_tests', ['rackspace']) do
instance_name = 'fog' + Time.now.to_i.to_s
instance_id = service.create_instance(instance_name, 1, 1).body['instance']['id']
until service.get_instance(instance_id).body["instance"]["status"] == 'ACTIVE'
sleep 10
wait_for_request("Waiting for database to be created") do
service.get_instance(instance_id).body["instance"]["status"] == 'ACTIVE'
end
tests('success') do
user_name = 'fog' + Time.now.to_i.to_s
password = 'password1'
tests("#create_user(#{instance_id}, #{user_name}, #{password})").succeeds do
service.create_user(instance_id, user_name, password).body
tests("#create_user(#{instance_id}, #{user_name}, #{password})").returns(202) do
service.create_user(instance_id, user_name, password).status
end
tests("#list_users{#{instance_id})").formats(LIST_USERS_FORMAT) do
service.list_users(instance_id).body
end
tests("#delete_user(#{instance_id}, #{user_name})").succeeds do
service.delete_user(instance_id, user_name)
tests("#delete_user(#{instance_id}, #{user_name})").returns(202) do
service.delete_user(instance_id, user_name).status
end
end

View file

@ -6,11 +6,13 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | usage', ['rackspace']) do
tests('success') do
tests("#get_usage()").formats(USAGE_FORMAT) do
@service.get_usage.body
pending
# @service.get_usage.body
end
tests("#get_usage(:start_time => '2010-05-10', :end_time => '2010-05-11')").formats(USAGE_FORMAT) do
@service.get_usage(:start_time => '2010-05-10', :end_time => '2010-05-11').body
pending
# @service.get_usage(:start_time => '2010-05-10', :end_time => '2010-05-11').body
end
end
end