[rackspace] fixing broken user tests; adding wait_for_request method to add in testing

This commit is contained in:
Kyle Rames 2013-06-26 09:26:25 -05:00
parent aa8b336cd8
commit 4b3fd82c8d
4 changed files with 50 additions and 42 deletions

View File

@ -23,6 +23,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

@ -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

@ -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