mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[rackspace] progress toward converting specs to shindo
This commit is contained in:
parent
4421d86953
commit
ace2752ff8
8 changed files with 244 additions and 0 deletions
64
tests/rackspace/helper.rb
Normal file
64
tests/rackspace/helper.rb
Normal file
|
@ -0,0 +1,64 @@
|
|||
module Rackspace
|
||||
|
||||
def self.[](service)
|
||||
@@connections ||= Hash.new do |hash, key|
|
||||
credentials = Fog.credentials.reject do |k, v|
|
||||
![:rackspace_api_key, :rackspace_username].include?(k)
|
||||
end
|
||||
hash[key] = case key
|
||||
when :files
|
||||
Fog::Rackspace::Files.new(credentials)
|
||||
when :servers
|
||||
Fog::Rackspace::Servers.new(credentials)
|
||||
end
|
||||
end
|
||||
@@connections[service]
|
||||
end
|
||||
|
||||
module Files
|
||||
|
||||
module Formats
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
module Servers
|
||||
|
||||
module Formats
|
||||
|
||||
FLAVOR = {
|
||||
'disk' => Integer,
|
||||
'id' => Integer,
|
||||
'name' => String,
|
||||
'ram' => Integer
|
||||
}
|
||||
|
||||
IMAGE = {
|
||||
'id' => Integer,
|
||||
'name' => String,
|
||||
'serverId' => Integer,
|
||||
'status' => String,
|
||||
'updated' => String
|
||||
}
|
||||
|
||||
SERVER = {
|
||||
'addresses' => {
|
||||
'private' => [String],
|
||||
'public' => [String]
|
||||
},
|
||||
'flavorId' => Integer,
|
||||
'hostId' => String,
|
||||
'id' => Integer,
|
||||
'imageId' => Integer,
|
||||
'metadata' => {},
|
||||
'name' => String,
|
||||
'progress' => Integer,
|
||||
'status' => String
|
||||
}
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
22
tests/rackspace/requests/servers/create_image_tests.rb
Normal file
22
tests/rackspace/requests/servers/create_image_tests.rb
Normal file
|
@ -0,0 +1,22 @@
|
|||
Shindo.tests('Rackspace::Servers#create_image', 'rackspace') do
|
||||
tests('success') do
|
||||
|
||||
before do
|
||||
@server_id = Rackspace[:servers].create_server(1, 3, 'fogcreateserver').body['server']['id']
|
||||
wait_for { Rackspace[:servers].get_server_details(@server_id).body['server']['status'] == 'ACTIVE' }
|
||||
@data = Rackspace[:servers].create_image(@server_id).body['image']
|
||||
@image_id = @data['id']
|
||||
end
|
||||
|
||||
after do
|
||||
Rackspace[:servers].delete_server(@server_id)
|
||||
wait_for { Rackspace[:servers].get_image_details(@image_id).body['image']['status'] == 'ACTIVE' }
|
||||
Rackspace[:servers].delete_image(@image_id)
|
||||
end
|
||||
|
||||
test('has proper output format') do
|
||||
validate_format(@data, Rackspace::Servers::Formats::IMAGE)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
19
tests/rackspace/requests/servers/create_server_tests.rb
Normal file
19
tests/rackspace/requests/servers/create_server_tests.rb
Normal file
|
@ -0,0 +1,19 @@
|
|||
Shindo.tests('Rackspace::Servers#create_server', 'rackspace') do
|
||||
tests('success') do
|
||||
|
||||
before do
|
||||
@data = Rackspace[:servers].create_server(1, 3, 'fogcreateserver').body['server']
|
||||
@server_id = @data['id']
|
||||
end
|
||||
|
||||
after do
|
||||
wait_for { Rackspace[:servers].get_server_details(@server_id).body['server']['status'] == 'ACTIVE' }
|
||||
Rackspace[:servers].delete_server(@server_id)
|
||||
end
|
||||
|
||||
test('has proper output format') do
|
||||
validate_format(@data, Rackspace::Servers::Formats::SERVER.merge('adminPass' => String))
|
||||
end
|
||||
|
||||
end
|
||||
end
|
32
tests/rackspace/requests/servers/delete_image_tests.rb
Normal file
32
tests/rackspace/requests/servers/delete_image_tests.rb
Normal file
|
@ -0,0 +1,32 @@
|
|||
Shindo.tests('Rackspace::Servers#delete_image', 'rackspace') do
|
||||
tests('success') do
|
||||
|
||||
before do
|
||||
@server_id = Rackspace[:servers].create_server(1, 3, 'fogcreateserver').body['server']['id']
|
||||
@image_id = Rackspace[:servers].create_image(@server_id).body['image']['id']
|
||||
end
|
||||
|
||||
after do
|
||||
wait_for { Rackspace[:servers].get_server_details(@server_id).body['server']['status'] == 'ACTIVE' }
|
||||
Rackspace[:servers].delete_server(@server_id)
|
||||
end
|
||||
|
||||
test('has proper output format') do
|
||||
wait_for { Rackspace[:servers].get_image_details(@image_id).body['image']['status'] == 'ACTIVE' }
|
||||
Rackspace[:servers].delete_image(@image_id)
|
||||
end
|
||||
|
||||
end
|
||||
tests('failure') do
|
||||
|
||||
test('raises NotFound error if image does not exist') do
|
||||
begin
|
||||
Rackspace[:servers].delete_image(0)
|
||||
false
|
||||
rescue Excon::Errors::NotFound
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
26
tests/rackspace/requests/servers/delete_server_tests.rb
Normal file
26
tests/rackspace/requests/servers/delete_server_tests.rb
Normal file
|
@ -0,0 +1,26 @@
|
|||
Shindo.tests('Rackspace::Servers#delete_server', 'rackspace') do
|
||||
tests('success') do
|
||||
|
||||
before do
|
||||
@server_id = Rackspace[:servers].create_server(1, 3, 'fogcreateserver').body['server']['id']
|
||||
end
|
||||
|
||||
test('has proper output format') do
|
||||
wait_for { Rackspace[:servers].get_server_details(@server_id).body['server']['status'] == 'ACTIVE' }
|
||||
Rackspace[:servers].delete_server(@server_id)
|
||||
end
|
||||
|
||||
end
|
||||
tests('failure') do
|
||||
|
||||
test('raises NotFound error if server does not exist') do
|
||||
begin
|
||||
Rackspace[:servers].delete_server(0)
|
||||
false
|
||||
rescue Excon::Errors::NotFound
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
25
tests/rackspace/requests/servers/get_flavor_details_tests.rb
Normal file
25
tests/rackspace/requests/servers/get_flavor_details_tests.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
Shindo.tests('Rackspace::Servers#get_flavor_details', 'rackspace') do
|
||||
tests('success') do
|
||||
|
||||
before do
|
||||
@data = Rackspace[:servers].get_flavor_details(1).body['flavor']
|
||||
end
|
||||
|
||||
test('has proper output format') do
|
||||
validate_format(@data, Rackspace::Servers::Formats::FLAVOR)
|
||||
end
|
||||
|
||||
end
|
||||
tests('failure') do
|
||||
|
||||
test('raises NotFound error if flavor does not exist') do
|
||||
begin
|
||||
Rackspace[:servers].get_flavor_details(0)
|
||||
false
|
||||
rescue Excon::Errors::NotFound
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
25
tests/rackspace/requests/servers/get_image_details_tests.rb
Normal file
25
tests/rackspace/requests/servers/get_image_details_tests.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
Shindo.tests('Rackspace::Servers#get_image_details', 'rackspace') do
|
||||
tests('success') do
|
||||
|
||||
before do
|
||||
@data = Rackspace[:servers].get_image_details(3).body['image']
|
||||
end
|
||||
|
||||
test('has proper output format') do
|
||||
validate_format(@data, Rackspace::Servers::Formats::IMAGE)
|
||||
end
|
||||
|
||||
end
|
||||
tests('failure') do
|
||||
|
||||
test('raises NotFound error if image does not exist') do
|
||||
begin
|
||||
Rackspace[:servers].get_image_details(0)
|
||||
false
|
||||
rescue Excon::Errors::NotFound
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
31
tests/rackspace/requests/servers/get_server_details_tests.rb
Normal file
31
tests/rackspace/requests/servers/get_server_details_tests.rb
Normal file
|
@ -0,0 +1,31 @@
|
|||
Shindo.tests('Rackspace::Servers#get_server_details', 'rackspace') do
|
||||
tests('success') do
|
||||
|
||||
before do
|
||||
@server_id = Rackspace[:servers].create_server(1, 3, 'fogcreateserver').body['server']['id']
|
||||
@data = Rackspace[:servers].get_server_details(@server_id).body['server']
|
||||
end
|
||||
|
||||
after do
|
||||
wait_for { Rackspace[:servers].get_server_details(@server_id).body['server']['status'] == 'ACTIVE' }
|
||||
Rackspace[:servers].delete_server(@server_id)
|
||||
end
|
||||
|
||||
test('has proper output format') do
|
||||
validate_format(@data, Rackspace::Servers::Formats::SERVER)
|
||||
end
|
||||
|
||||
end
|
||||
tests('failure') do
|
||||
|
||||
test('raises NotFound error if server does not exist') do
|
||||
begin
|
||||
Rackspace[:servers].get_server_details(0)
|
||||
false
|
||||
rescue Excon::Errors::NotFound
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue