| Index: third_party/boto/tests/unit/iam/test_connection.py
|
| ===================================================================
|
| --- third_party/boto/tests/unit/iam/test_connection.py (revision 33376)
|
| +++ third_party/boto/tests/unit/iam/test_connection.py (working copy)
|
| @@ -164,3 +164,143 @@
|
| 'SAMLProviderArn': 'arn'
|
| },
|
| ignore_params_values=['Version'])
|
| +
|
| +
|
| +class TestCreateRole(AWSMockServiceTestCase):
|
| + connection_class = IAMConnection
|
| +
|
| + def default_body(self):
|
| + return """
|
| + <CreateRoleResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">
|
| + <CreateRoleResult>
|
| + <Role>
|
| + <Path>/application_abc/component_xyz/</Path>
|
| + <Arn>arn:aws:iam::123456789012:role/application_abc/component_xyz/S3Access</Arn>
|
| + <RoleName>S3Access</RoleName>
|
| + <AssumeRolePolicyDocument>{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":["ec2.amazonaws.com"]},"Action":["sts:AssumeRole"]}]}</AssumeRolePolicyDocument>
|
| + <CreateDate>2012-05-08T23:34:01.495Z</CreateDate>
|
| + <RoleId>AROADBQP57FF2AEXAMPLE</RoleId>
|
| + </Role>
|
| + </CreateRoleResult>
|
| + <ResponseMetadata>
|
| + <RequestId>4a93ceee-9966-11e1-b624-b1aEXAMPLE7c</RequestId>
|
| + </ResponseMetadata>
|
| + </CreateRoleResponse>
|
| + """
|
| +
|
| + def test_create_role_default(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.create_role('a_name')
|
| +
|
| + self.assert_request_parameters(
|
| + {'Action': 'CreateRole',
|
| + 'AssumeRolePolicyDocument': '{"Statement": [{"Action": ["sts:AssumeRole"], "Effect": "Allow", "Principal": {"Service": ["ec2.amazonaws.com"]}}]}',
|
| + 'RoleName': 'a_name'},
|
| + ignore_params_values=['Version'])
|
| +
|
| + def test_create_role_default_cn_north(self):
|
| + self.set_http_response(status_code=200)
|
| + self.service_connection.host = 'iam.cn-north-1.amazonaws.com.cn'
|
| + response = self.service_connection.create_role('a_name')
|
| +
|
| + self.assert_request_parameters(
|
| + {'Action': 'CreateRole',
|
| + 'AssumeRolePolicyDocument': '{"Statement": [{"Action": ["sts:AssumeRole"], "Effect": "Allow", "Principal": {"Service": ["ec2.amazonaws.com.cn"]}}]}',
|
| + 'RoleName': 'a_name'},
|
| + ignore_params_values=['Version'])
|
| +
|
| + def test_create_role_string_policy(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.create_role(
|
| + 'a_name',
|
| + # Historical usage.
|
| + assume_role_policy_document='{"hello": "policy"}'
|
| + )
|
| +
|
| + self.assert_request_parameters(
|
| + {'Action': 'CreateRole',
|
| + 'AssumeRolePolicyDocument': '{"hello": "policy"}',
|
| + 'RoleName': 'a_name'},
|
| + ignore_params_values=['Version'])
|
| +
|
| + def test_create_role_data_policy(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.create_role(
|
| + 'a_name',
|
| + # With plain data, we should dump it for them.
|
| + assume_role_policy_document={"hello": "policy"}
|
| + )
|
| +
|
| + self.assert_request_parameters(
|
| + {'Action': 'CreateRole',
|
| + 'AssumeRolePolicyDocument': '{"hello": "policy"}',
|
| + 'RoleName': 'a_name'},
|
| + ignore_params_values=['Version'])
|
| +
|
| +
|
| +class TestGetSigninURL(AWSMockServiceTestCase):
|
| + connection_class = IAMConnection
|
| +
|
| + def default_body(self):
|
| + return """
|
| + <ListAccountAliasesResponse>
|
| + <ListAccountAliasesResult>
|
| + <IsTruncated>false</IsTruncated>
|
| + <AccountAliases>
|
| + <member>foocorporation</member>
|
| + <member>anotherunused</member>
|
| + </AccountAliases>
|
| + </ListAccountAliasesResult>
|
| + <ResponseMetadata>
|
| + <RequestId>c5a076e9-f1b0-11df-8fbe-45274EXAMPLE</RequestId>
|
| + </ResponseMetadata>
|
| + </ListAccountAliasesResponse>
|
| + """
|
| +
|
| + def test_get_signin_url_default(self):
|
| + self.set_http_response(status_code=200)
|
| + url = self.service_connection.get_signin_url()
|
| + self.assertEqual(
|
| + url,
|
| + 'https://foocorporation.signin.aws.amazon.com/console/ec2'
|
| + )
|
| +
|
| + def test_get_signin_url_s3(self):
|
| + self.set_http_response(status_code=200)
|
| + url = self.service_connection.get_signin_url(service='s3')
|
| + self.assertEqual(
|
| + url,
|
| + 'https://foocorporation.signin.aws.amazon.com/console/s3'
|
| + )
|
| +
|
| + def test_get_signin_url_cn_north(self):
|
| + self.set_http_response(status_code=200)
|
| + self.service_connection.host = 'iam.cn-north-1.amazonaws.com.cn'
|
| + url = self.service_connection.get_signin_url()
|
| + self.assertEqual(
|
| + url,
|
| + 'https://foocorporation.signin.aws.amazon.com/console/ec2'
|
| + )
|
| +
|
| +
|
| +class TestGetSigninURL(AWSMockServiceTestCase):
|
| + connection_class = IAMConnection
|
| +
|
| + def default_body(self):
|
| + return """
|
| + <ListAccountAliasesResponse>
|
| + <ListAccountAliasesResult>
|
| + <IsTruncated>false</IsTruncated>
|
| + <AccountAliases></AccountAliases>
|
| + </ListAccountAliasesResult>
|
| + <ResponseMetadata>
|
| + <RequestId>c5a076e9-f1b0-11df-8fbe-45274EXAMPLE</RequestId>
|
| + </ResponseMetadata>
|
| + </ListAccountAliasesResponse>
|
| + """
|
| +
|
| + def test_get_signin_url_no_aliases(self):
|
| + self.set_http_response(status_code=200)
|
| +
|
| + with self.assertRaises(Exception):
|
| + self.service_connection.get_signin_url()
|
|
|