iam: add a very basic user policy smoke test
authorAbhishek Lekshmanan <abhishek@suse.com>
Thu, 24 Oct 2019 15:18:38 +0000 (17:18 +0200)
committerAbhishek Lekshmanan <abhishek@suse.com>
Fri, 20 Dec 2019 17:17:55 +0000 (18:17 +0100)
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
s3tests_boto3/functional/__init__.py
s3tests_boto3/functional/test_s3.py

index a96b45d7739f123d76525ae68921bfeb7403e252..5c229fa0a83f51117f33a7654ef4c87c98fa37bb 100644 (file)
@@ -265,6 +265,15 @@ def get_tenant_client(client_config=None):
                         config=client_config)
     return client
 
+def get_tenant_iam_client():
+
+    client = boto3.client(service_name='iam',
+                          aws_access_key_id=config.tenant_access_key,
+                          aws_secret_access_key=config.tenant_secret_key,
+                          endpoint_url=config.default_endpoint,
+                          use_ssl=config.default_is_secure)
+    return client
+
 def get_unauthenticated_client():
     client = boto3.client(service_name='s3',
                         aws_access_key_id='',
index 011d1dd7fb2a656027c2d0fae8c63302c42dbdf6..dc137409c2e4c119690fe78d38569bc7bd3b8731 100644 (file)
@@ -64,6 +64,8 @@ from . import (
     get_alt_email,
     get_alt_client,
     get_tenant_client,
+    get_tenant_iam_client,
+    get_tenant_user_id,
     get_buckets_list,
     get_objects_list,
     get_main_kms_keyid,
@@ -12303,3 +12305,24 @@ def test_object_read_unreadable():
     status, error_code = _get_status_and_error_code(e.response)
     eq(status, 400)
     eq(e.response['Error']['Message'], 'Couldn\'t parse the specified URI.')
+
+@attr(resource='bucket')
+@attr(method='get')
+@attr(operation='Test User Policy')
+@attr(assertion='succeeds')
+@attr('user-policy')
+def test_user_policy():
+    client = get_tenant_iam_client()
+
+    policy_document = json.dumps(
+    {"Version":"2012-10-17",
+     "Statement": {
+         "Effect":"Allow",
+         "Action":"*",
+         "Resource":"*"}}
+    )
+    client.put_user_policy(
+        PolicyDocument= policy_document,
+        PolicyName='AllAccessPolicy',
+        UserName=get_tenant_user_id(),
+    )