From 4eddc3425bcbec3637162ed5e2ea0a335dceb46c Mon Sep 17 00:00:00 2001 From: Evgenii Baidakov Date: Mon, 10 Mar 2025 10:11:01 +0400 Subject: [PATCH 1/2] *: Add put object delay for some tests This delay is a temporary solution. It required to be able to get the right order of objects. There is some limitation to understand what object was first in the same second. See nspcc-dev/neofs-s3-gw#1066. Signed-off-by: Evgenii Baidakov --- s3tests_boto3/functional/test_s3.py | 10 ++++++++-- s3tests_boto3/functional/test_s3_neofs.py | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/s3tests_boto3/functional/test_s3.py b/s3tests_boto3/functional/test_s3.py index af22a8494..b1611d27d 100644 --- a/s3tests_boto3/functional/test_s3.py +++ b/s3tests_boto3/functional/test_s3.py @@ -2197,6 +2197,7 @@ def test_object_write_read_update_read_delete(): # Write client.put_object(Bucket=bucket_name, Key="foo", Body="bar") + time.sleep(1) # Read response = client.get_object(Bucket=bucket_name, Key="foo") body = _get_body(response) @@ -2303,7 +2304,8 @@ def test_object_metadata_replaced_on_put(): client = get_client() metadata_dict = {"meta1": "bar"} client.put_object(Bucket=bucket_name, Key="foo", Body="bar", Metadata=metadata_dict) - + time.sleep(1) + client.put_object(Bucket=bucket_name, Key="foo", Body="bar") response = client.get_object(Bucket=bucket_name, Key="foo") @@ -8706,6 +8708,7 @@ def _test_atomic_read(file_size): fp_a = FakeWriteFile(file_size, "A") client.put_object(Bucket=bucket_name, Key="testobj", Body=fp_a) + time.sleep(1) fp_b = FakeWriteFile(file_size, "B") fp_a2 = FakeReadFile( @@ -8750,6 +8753,7 @@ def _test_atomic_write(file_size): # create file of A's fp_a = FakeWriteFile(file_size, "A") client.put_object(Bucket=bucket_name, Key=objname, Body=fp_a) + time.sleep(1) # verify A's _verify_atomic_key_data(bucket_name, objname, file_size, "A") @@ -8763,6 +8767,7 @@ def _test_atomic_write(file_size): ) client.put_object(Bucket=bucket_name, Key=objname, Body=fp_b) + time.sleep(1) # verify B's _verify_atomic_key_data(bucket_name, objname, file_size, "B") @@ -9322,6 +9327,7 @@ def test_versioning_obj_plain_null_version_overwrite(): key = "testobjfoo" content = "fooz" client.put_object(Bucket=bucket_name, Key=key, Body=content) + time.sleep(1) check_configure_versioning_retry(bucket_name, "Enabled", "Enabled") @@ -9356,7 +9362,7 @@ def test_versioning_obj_plain_null_version_overwrite_suspended(): key = "testobjbar" content = "foooz" client.put_object(Bucket=bucket_name, Key=key, Body=content) - + time.sleep(1) check_configure_versioning_retry(bucket_name, "Enabled", "Enabled") check_configure_versioning_retry(bucket_name, "Suspended", "Suspended") diff --git a/s3tests_boto3/functional/test_s3_neofs.py b/s3tests_boto3/functional/test_s3_neofs.py index 525bbb257..cdcfd84c9 100644 --- a/s3tests_boto3/functional/test_s3_neofs.py +++ b/s3tests_boto3/functional/test_s3_neofs.py @@ -1014,12 +1014,14 @@ def test_object_tagging_workflow(): response = client.put_object(Bucket=bucket_name, Key=object_name, Body="content") assert response["ResponseMetadata"]["HTTPStatusCode"] == 200 + time.sleep(1) tags = {"TagSet": [{"Key": "object-tag-key", "Value": "object-tag-value"}]} response = client.put_object_tagging( Bucket=bucket_name, Key=object_name, Tagging=tags ) assert response["ResponseMetadata"]["HTTPStatusCode"] == 200 + time.sleep(1) response = client.get_object_tagging(Bucket=bucket_name, Key=object_name) assert len(response["TagSet"]) == 1 From 764cb0d7b0a57f3ccf78b9dd1e567ac87caa5695 Mon Sep 17 00:00:00 2001 From: Evgenii Baidakov Date: Mon, 10 Mar 2025 10:23:01 +0400 Subject: [PATCH 2/2] *: Disable test_atomic_dual_write tests These tests write twice object with the same name. There is some limitation to understand what object was first in the same second. See nspcc-dev/neofs-s3-gw#1066. Signed-off-by: Evgenii Baidakov --- s3tests_boto3/functional/test_s3.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/s3tests_boto3/functional/test_s3.py b/s3tests_boto3/functional/test_s3.py index b1611d27d..e1b2f5b07 100644 --- a/s3tests_boto3/functional/test_s3.py +++ b/s3tests_boto3/functional/test_s3.py @@ -8810,15 +8810,15 @@ def rewind_put_fp_a(): # verify the file _verify_atomic_key_data(bucket_name, objname, file_size, "B") - +@pytest.mark.fails_on_dbstore def test_atomic_dual_write_1mb(): _test_atomic_dual_write(1024 * 1024) - +@pytest.mark.fails_on_dbstore def test_atomic_dual_write_4mb(): _test_atomic_dual_write(1024 * 1024 * 4) - +@pytest.mark.fails_on_dbstore def test_atomic_dual_write_8mb(): _test_atomic_dual_write(1024 * 1024 * 8)