From b12e373ce3d44652240e47bdbb393d4ae4b75ba8 Mon Sep 17 00:00:00 2001 From: Edward Muller Date: Mon, 6 Feb 2012 14:55:43 -0800 Subject: [PATCH] mock #put_user_policy --- lib/fog/aws/requests/iam/put_user_policy.rb | 17 +++++++++++++++++ tests/aws/requests/iam/user_policy_tests.rb | 7 ++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lib/fog/aws/requests/iam/put_user_policy.rb b/lib/fog/aws/requests/iam/put_user_policy.rb index c529d8a02..f5a6aa4f3 100644 --- a/lib/fog/aws/requests/iam/put_user_policy.rb +++ b/lib/fog/aws/requests/iam/put_user_policy.rb @@ -31,6 +31,23 @@ module Fog end end + + class Mock + + #FIXME: You can't actually use the credentials for anything elsewhere in Fog + #FIXME: Doesn't do any validation on the policy + def put_user_policy(user_name, policy_name, policy_document) + if data[:users].keys.include? user_name + response = Excon::Response.new + response.body = { 'RequestId' => Fog::AWS::Mock.request_id } + response.status = 200 + data[:users][user_name][:policies][policy_name] = policy_document + response + else + raise Fog::AWS::IAM::NotFound.new("The user with name #{user_name} cannot be found.") + end + end + end end end end diff --git a/tests/aws/requests/iam/user_policy_tests.rb b/tests/aws/requests/iam/user_policy_tests.rb index 3d72b267e..29279e3b9 100644 --- a/tests/aws/requests/iam/user_policy_tests.rb +++ b/tests/aws/requests/iam/user_policy_tests.rb @@ -1,15 +1,12 @@ Shindo.tests('AWS::IAM | user policy requests', ['aws']) do - unless Fog.mocking? - Fog::AWS[:iam].create_user('fog_user_policy_tests') - end + Fog::AWS[:iam].create_user('fog_user_policy_tests') tests('success') do @policy = {"Statement" => [{"Effect" => "Allow", "Action" => "*", "Resource" => "*"}]} tests("#put_user_policy('fog_user_policy_tests', 'fog_policy', #{@policy.inspect})").formats(AWS::IAM::Formats::BASIC) do - pending if Fog.mocking? Fog::AWS[:iam].put_user_policy('fog_user_policy_tests', 'fog_policy', @policy).body end @@ -39,4 +36,4 @@ Shindo.tests('AWS::IAM | user policy requests', ['aws']) do Fog::AWS[:iam].delete_user('fog_user_policy_tests') end -end \ No newline at end of file +end