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

tweaks for tests

This commit is contained in:
geemus (Wesley Beary) 2010-04-04 22:11:28 -07:00
parent 2cba552d1b
commit 5d1b2333d4
11 changed files with 45 additions and 31 deletions

View file

@ -1,8 +1,8 @@
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'fog'))
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'fog', 'bin'))
# TODO: Currently is true even if some of the keys in format do not appear in
def validate_data_format(original_data, format)
# TODO: Currently is true even if some of the keys in format do not appear
def validate_format(original_data, format)
valid = true
data = original_data.dup
for key, value in format
@ -14,22 +14,23 @@ def validate_data_format(original_data, format)
for element in datum
type = value.first
if type.is_a?(Hash)
valid &&= validate_data_format({:element => element}, {:element => type})
valid &&= validate_format({:element => element}, {:element => type})
else
valid &&= element.is_a?(type)
end
end
when Hash
valid &&= datum.is_a?(Hash)
valid &&= validate_data_format(datum, value)
valid &&= validate_format(datum, value)
else
valid &&= datum.is_a?(value)
end
end
unless data.empty?
p "validate_data_format did not validate [#{data.inspect}]"
end
valid &&= data.empty?
unless valid
@formatador.display_line("[red]#{original_data.inspect} does not match #{format.inspect}[/]")
end
valid
end
def wait_for(timeout = 600, &block)

View file

@ -1,20 +1,18 @@
require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
Shindo.tests('test_helper') do
Shindo.tests('test_helper', 'meta') do
tests('#validate_data_format') do
tests('returns true') do
test('when format of value matches') do
validate_data_format({:a => :b}, {:a => Symbol})
validate_format({:a => :b}, {:a => Symbol})
end
test('when format of nested array elements matches') do
validate_data_format({:a => [:b, :c]}, {:a => [Symbol]})
validate_format({:a => [:b, :c]}, {:a => [Symbol]})
end
test('when format of nested hash matches') do
validate_data_format({:a => {:b => :c}}, {:a => {:b => Symbol}})
validate_format({:a => {:b => :c}}, {:a => {:b => Symbol}})
end
end
@ -22,15 +20,15 @@ Shindo.tests('test_helper') do
tests('returns false') do
test('when format of value does not match') do
!validate_data_format({:a => :b}, {:a => String})
!validate_format({:a => :b}, {:a => String})
end
test('when not all keys are checked') do
!validate_data_format({:a => :b}, {})
!validate_format({:a => :b}, {})
end
test('when some keys do not appear') do
!validate_data_format({}, {:a => String})
!validate_format({}, {:a => String})
end
end

View file

@ -12,7 +12,7 @@ Shindo.tests('Slicehost#create_slice', 'slicehost') do
end
test('has proper output format') do
validate_data_format(@data, Slicehost::Formats::SLICE.merge('root-password' => String))
validate_format(@data, Slicehost::Formats::SLICE.merge('root-password' => String))
end
end

View file

@ -7,7 +7,7 @@ Shindo.tests('Slicehost#get_backups', 'slicehost') do
# TODO: ensure this still works with a non-empty list
test('has proper output format') do
validate_data_format(@data, { 'backups' => [Slicehost::Formats::BACKUP] })
validate_format(@data, { 'backups' => [Slicehost::Formats::BACKUP] })
end
end

View file

@ -1,9 +1,12 @@
Shindo.tests('Slicehost#get_flavor', 'slicehost') do
tests('success') do
test('has proper output format') do
before do
@data = Slicehost[:slices].get_flavor(1).body
validate_data_format(@data, Slicehost::Formats::FLAVOR)
end
test('has proper output format') do
validate_format(@data, Slicehost::Formats::FLAVOR)
end
end

View file

@ -1,9 +1,12 @@
Shindo.tests('Slicehost#get_flavors', 'slicehost') do
tests('success') do
test('has proper output format') do
before do
@data = Slicehost[:slices].get_flavors.body
validate_data_format(@data, { 'flavors' => [Slicehost::Formats::FLAVOR] })
end
test('has proper output format') do
validate_format(@data, { 'flavors' => [Slicehost::Formats::FLAVOR] })
end
end

View file

@ -1,9 +1,12 @@
Shindo.tests('Slicehost#get_image', 'slicehost') do
tests('success') do
test('has proper output format') do
before do
@data = Slicehost[:slices].get_image(3).body
validate_data_format(@data, Slicehost::Formats::IMAGE)
end
test('has proper output format') do
validate_format(@data, Slicehost::Formats::IMAGE)
end
end

View file

@ -1,9 +1,12 @@
Shindo.tests('Slicehost#get_images', 'slicehost') do
tests('success') do
test('has proper output format') do
before do
@data = Slicehost[:slices].get_images.body
validate_data_format(@data, { 'images' => [Slicehost::Formats::IMAGE] })
end
test('has proper output format') do
validate_format(@data, { 'images' => [Slicehost::Formats::IMAGE] })
end
end

View file

@ -4,6 +4,7 @@ Shindo.tests('Slicehost#get_slice', 'slicehost') do
before do
@data = Slicehost[:slices].create_slice(1, 3, 'foggetslice').body
@id = @data['id']
@data = Slicehost[:slices].get_slice(@id).body
end
after do
@ -12,8 +13,7 @@ Shindo.tests('Slicehost#get_slice', 'slicehost') do
end
test('has proper output format') do
@data = Slicehost[:slices].get_slice(@id).body
validate_data_format(@data, Slicehost::Formats::SLICE)
validate_format(@data, Slicehost::Formats::SLICE)
end
end

View file

@ -1,9 +1,12 @@
Shindo.tests('Slicehost#get_slices', 'slicehost') do
tests('success') do
test('has proper output format') do
before do
@data = Slicehost[:slices].get_slices.body
validate_data_format(@data, { 'slices' => [Slicehost::Formats::SLICE] })
end
test('has proper output format') do
validate_format(@data, { 'slices' => [Slicehost::Formats::SLICE] })
end
end

View file

@ -14,7 +14,7 @@ Shindo.tests('Slicehost#reboot_slice', 'slicehost') do
end
test('has proper output format') do
validate_data_format(@data, Slicehost::Formats::SLICE)
validate_format(@data, Slicehost::Formats::SLICE)
end
end