]> git-server-git.apps.pok.os.sepia.ceph.com Git - s3-tests.git/commitdiff
PolicyStatus: add test for policy with Principal
authorSeena Fallah <seenafallah@gmail.com>
Fri, 19 Jul 2024 18:50:26 +0000 (20:50 +0200)
committerSeena Fallah <seenafallah@gmail.com>
Fri, 19 Jul 2024 18:50:26 +0000 (20:50 +0200)
Ref. https://github.com/ceph/ceph/pull/58686

Signed-off-by: Seena Fallah <seenafallah@gmail.com>
s3tests_boto3/functional/test_s3.py

index ebdd6c403aa81624e58a0fa391367f01114b1cd1..39da62e16ca91cb9f349e8ce9402074e29fbb39e 100644 (file)
@@ -12793,6 +12793,31 @@ def test_get_nonpublicpolicy_acl_bucket_policy_status():
     assert resp['PolicyStatus']['IsPublic'] == False
 
 
+def test_get_nonpublicpolicy_principal_bucket_policy_status():
+    bucket_name = get_new_bucket()
+    client = get_client()
+
+    resource1 = "arn:aws:s3:::" + bucket_name
+    resource2 = "arn:aws:s3:::" + bucket_name + "/*"
+    policy_document = json.dumps(
+    {
+        "Version": "2012-10-17",
+        "Statement": [{
+        "Effect": "Allow",
+        "Principal": {"AWS": "arn:aws:iam::s3tenant1:root"},
+        "Action": "s3:ListBucket",
+        "Resource": [
+            "{}".format(resource1),
+            "{}".format(resource2)
+            ],
+        }]
+    })
+    
+    client.put_bucket_policy(Bucket=bucket_name, Policy=policy_document)
+    resp = client.get_bucket_policy_status(Bucket=bucket_name)
+    assert resp['PolicyStatus']['IsPublic'] == False
+
+
 def test_bucket_policy_allow_notprincipal():
     bucket_name = get_new_bucket()
     client = get_client()