mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
71 lines
No EOL
2.1 KiB
Ruby
71 lines
No EOL
2.1 KiB
Ruby
Shindo.tests('Fog::Rackspace::AutoScale | policy_tests', ['rackspace', 'rackspace_autoscale']) do
|
|
|
|
pending if Fog.mocking?
|
|
service = Fog::Rackspace::AutoScale.new :rackspace_region => :ord
|
|
|
|
begin
|
|
@group_id = service.create_group(LAUNCH_CONFIG_OPTIONS, GROUP_CONFIG_OPTIONS, POLICIES_OPTIONS).body['group']['id']
|
|
|
|
tests('success') do
|
|
tests('#list policies').formats(POLICIES_FORMAT) do
|
|
service.list_policies(@group_id).body['policies']
|
|
end
|
|
tests('#create_policy').returns(201) do
|
|
response = service.create_policy(@group_id, POLICY_OPTIONS)
|
|
@policy_id = response.body['policies'][0]['id']
|
|
response.status
|
|
end
|
|
|
|
tests('#get_policy').formats(POLICY_FORMAT) do
|
|
response = service.get_policy(@group_id, @policy_id)
|
|
response.body['policy']
|
|
end
|
|
|
|
tests('#execute_policy').returns(202) do
|
|
service.execute_policy(@group_id, @policy_id).status
|
|
end
|
|
|
|
tests('#update_policy').returns(204) do
|
|
response = service.update_policy(@group_id, @policy_id, {
|
|
'name' => 'foo',
|
|
'changePercent' => 1,
|
|
'type' => 'webhook',
|
|
'cooldown' => 100
|
|
})
|
|
response.status
|
|
end
|
|
|
|
tests('#delete_policy').returns(204) do
|
|
response = service.delete_policy(@group_id, @policy_id)
|
|
response.status
|
|
end
|
|
end
|
|
ensure
|
|
group = service.groups.get(@group_id)
|
|
deactive_auto_scale_group(group)
|
|
group.destroy
|
|
end
|
|
|
|
tests('failure') do
|
|
tests('#create policy').raises(Fog::Rackspace::AutoScale::BadRequest) do
|
|
service.create_policy(@group_id, {})
|
|
end
|
|
|
|
tests('#get policy').raises(Fog::Rackspace::AutoScale::NotFound) do
|
|
service.get_policy(@group_id, 123)
|
|
end
|
|
|
|
tests('#update policy').raises(Fog::Rackspace::AutoScale::BadRequest) do
|
|
service.update_policy(@group_id, 123, {})
|
|
end
|
|
|
|
tests('#execute policy').raises(Fog::Rackspace::AutoScale::NotFound) do
|
|
service.execute_policy(@group_id, 123)
|
|
end
|
|
|
|
tests('#delete policy').raises(Fog::Rackspace::AutoScale::NotFound) do
|
|
service.delete_policy(@group_id, 123)
|
|
end
|
|
end
|
|
|
|
end |