From f9bd0d0bb7245dcbd281dc606bead202a92765e4 Mon Sep 17 00:00:00 2001 From: Oleg Kulachenko Date: Fri, 14 Jul 2023 21:48:22 +0400 Subject: [PATCH] Skip the falling tests Skip tests falling due to these bugs: https://github.com/nspcc-dev/neofs-node/issues/2439 https://github.com/nspcc-dev/neofs-node/issues/2440 https://github.com/nspcc-dev/neofs-node/issues/2441 https://github.com/nspcc-dev/neofs-s3-gw/issues/798 https://github.com/nspcc-dev/neofs-s3-gw/issues/799 https://github.com/nspcc-dev/neofs-s3-gw/issues/800 https://github.com/nspcc-dev/neofs-s3-gw/issues/801 https://github.com/nspcc-dev/neofs-s3-gw/issues/802 Signed-off-by: Oleg Kulachenko --- .../testsuites/acl/storage_group/test_storagegroup.py | 5 +++++ pytest_tests/testsuites/network/test_node_management.py | 2 ++ pytest_tests/testsuites/object/test_object_api.py | 9 +++++++++ pytest_tests/testsuites/object/test_object_api_bearer.py | 2 ++ pytest_tests/testsuites/object/test_object_lifetime.py | 1 + pytest_tests/testsuites/object/test_object_lock.py | 4 ++++ .../testsuites/services/http_gate/test_http_bearer.py | 1 + .../testsuites/services/http_gate/test_http_gate.py | 5 +++++ .../testsuites/services/http_gate/test_http_headers.py | 2 ++ .../testsuites/services/http_gate/test_http_object.py | 1 + .../testsuites/services/http_gate/test_http_streaming.py | 1 + .../services/http_gate/test_http_system_header.py | 4 ++++ pytest_tests/testsuites/services/s3_gate/test_s3_ACL.py | 3 +++ .../testsuites/services/s3_gate/test_s3_bucket.py | 4 ++-- pytest_tests/testsuites/services/s3_gate/test_s3_gate.py | 3 ++- .../testsuites/services/s3_gate/test_s3_locking.py | 4 ++++ .../testsuites/services/s3_gate/test_s3_multipart.py | 6 ++++++ .../testsuites/services/s3_gate/test_s3_object.py | 7 ++++++- .../testsuites/services/s3_gate/test_s3_policy.py | 3 +++ .../testsuites/services/s3_gate/test_s3_tagging.py | 4 +++- .../testsuites/services/s3_gate/test_s3_versioning.py | 4 +++- .../session_token/test_object_session_token.py | 1 + .../session_token/test_static_object_session_token.py | 5 +++++ 23 files changed, 75 insertions(+), 6 deletions(-) diff --git a/pytest_tests/testsuites/acl/storage_group/test_storagegroup.py b/pytest_tests/testsuites/acl/storage_group/test_storagegroup.py index 13a18ff8b..22b568fd3 100644 --- a/pytest_tests/testsuites/acl/storage_group/test_storagegroup.py +++ b/pytest_tests/testsuites/acl/storage_group/test_storagegroup.py @@ -67,6 +67,7 @@ def prepare_two_wallets(self, default_wallet): ) @allure.title("Test Storage Group in Private Container") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_storagegroup_basic_private_container(self, object_size, max_object_size): cid = create_container( self.main_wallet, shell=self.shell, endpoint=self.cluster.default_rpc_endpoint @@ -105,6 +106,7 @@ def test_storagegroup_basic_private_container(self, object_size, max_object_size @pytest.mark.sanity @allure.title("Test Storage Group in Public Container") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_storagegroup_basic_public_container(self, object_size, max_object_size): cid = create_container( self.main_wallet, @@ -140,6 +142,7 @@ def test_storagegroup_basic_public_container(self, object_size, max_object_size) ) @allure.title("Test Storage Group in Read-Only Container") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_storagegroup_basic_ro_container(self, object_size, max_object_size): cid = create_container( self.main_wallet, @@ -176,6 +179,7 @@ def test_storagegroup_basic_ro_container(self, object_size, max_object_size): ) @allure.title("Test Storage Group with Bearer Allow") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_storagegroup_bearer_allow(self, object_size, max_object_size): cid = create_container( self.main_wallet, @@ -233,6 +237,7 @@ def test_storagegroup_bearer_allow(self, object_size, max_object_size): ) @allure.title("Test to check Storage Group lifetime") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_storagegroup_lifetime(self, object_size): cid = create_container( self.main_wallet, shell=self.shell, endpoint=self.cluster.default_rpc_endpoint diff --git a/pytest_tests/testsuites/network/test_node_management.py b/pytest_tests/testsuites/network/test_node_management.py index 144af44e2..022f8ff6e 100644 --- a/pytest_tests/testsuites/network/test_node_management.py +++ b/pytest_tests/testsuites/network/test_node_management.py @@ -284,6 +284,8 @@ def test_placement_policy( ) @pytest.mark.node_mgmt @allure.title("Test object copies and storage nodes based on placement policy") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2441") def test_placement_policy_with_nodes( self, default_wallet, diff --git a/pytest_tests/testsuites/object/test_object_api.py b/pytest_tests/testsuites/object/test_object_api.py index 36ff6c862..afe70583b 100755 --- a/pytest_tests/testsuites/object/test_object_api.py +++ b/pytest_tests/testsuites/object/test_object_api.py @@ -139,6 +139,7 @@ def storage_objects( @pytest.mark.grpc_api class TestObjectApi(ClusterTestBase): @pytest.mark.sanity + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2439") @allure.title("Validate object storage policy by native API") def test_object_storage_policies( self, request: FixtureRequest, storage_objects: list[StorageObjectInfo], simple_object_size @@ -171,6 +172,7 @@ def test_object_storage_policies( assert copies == 2, "Expected 2 copies" @allure.title("Validate get object native API") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_get_object_api( self, request: FixtureRequest, storage_objects: list[StorageObjectInfo] ): @@ -192,6 +194,7 @@ def test_get_object_api( assert storage_object.file_hash == file_hash @allure.title("Validate head object native API") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_head_object_api( self, request: FixtureRequest, storage_objects: list[StorageObjectInfo] ): @@ -221,6 +224,7 @@ def test_head_object_api( self.check_header_is_presented(head_info, storage_object_2.attributes) @allure.title("Validate object search by native API") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_search_object_api( self, request: FixtureRequest, storage_objects: list[StorageObjectInfo] ): @@ -270,6 +274,7 @@ def test_search_object_api( [pytest.lazy_fixture("simple_object_size"), pytest.lazy_fixture("complex_object_size")], ids=["simple object", "complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_object_search_should_return_tombstone_items( self, default_wallet: str, request: FixtureRequest, object_size: int ): @@ -339,6 +344,7 @@ def test_object_search_should_return_tombstone_items( @allure.title("Validate native object API get_range_hash") @pytest.mark.grpc_api + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_object_get_range_hash( self, request: FixtureRequest, storage_objects: list[StorageObjectInfo], max_object_size ): @@ -377,6 +383,7 @@ def test_object_get_range_hash( @allure.title("Validate native object API get_range") @pytest.mark.grpc_api + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_object_get_range( self, request: FixtureRequest, storage_objects: list[StorageObjectInfo], max_object_size ): @@ -416,6 +423,7 @@ def test_object_get_range( @allure.title("Validate native object API get_range negative cases") @pytest.mark.grpc_api + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_object_get_range_negatives( self, request: FixtureRequest, @@ -471,6 +479,7 @@ def test_object_get_range_negatives( ) @allure.title("Validate native object API get_range_hash negative cases") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_object_get_range_hash_negatives( self, request: FixtureRequest, diff --git a/pytest_tests/testsuites/object/test_object_api_bearer.py b/pytest_tests/testsuites/object/test_object_api_bearer.py index b4c414b8d..61bb57d28 100644 --- a/pytest_tests/testsuites/object/test_object_api_bearer.py +++ b/pytest_tests/testsuites/object/test_object_api_bearer.py @@ -91,6 +91,7 @@ class TestObjectApiWithBearerToken(ClusterTestBase): ids=["simple object", "complex object"], indirect=True, ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_delete_object_with_s3_wallet_bearer( self, storage_objects: list[StorageObjectInfo], @@ -140,6 +141,7 @@ def test_delete_object_with_s3_wallet_bearer( [pytest.lazy_fixture("simple_object_size"), pytest.lazy_fixture("complex_object_size")], ids=["simple object", "complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_get_object_with_s3_wallet_bearer_from_all_nodes( self, user_container: StorageContainer, diff --git a/pytest_tests/testsuites/object/test_object_lifetime.py b/pytest_tests/testsuites/object/test_object_lifetime.py index 9d4bdc4d8..3c5eb654d 100644 --- a/pytest_tests/testsuites/object/test_object_lifetime.py +++ b/pytest_tests/testsuites/object/test_object_lifetime.py @@ -23,6 +23,7 @@ class TestObjectApiLifetime(ClusterTestBase): [pytest.lazy_fixture("simple_object_size"), pytest.lazy_fixture("complex_object_size")], ids=["simple object", "complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_object_api_lifetime( self, default_wallet: str, request: FixtureRequest, object_size: int ): diff --git a/pytest_tests/testsuites/object/test_object_lock.py b/pytest_tests/testsuites/object/test_object_lock.py index 2cd4412e7..eb36ba366 100755 --- a/pytest_tests/testsuites/object/test_object_lock.py +++ b/pytest_tests/testsuites/object/test_object_lock.py @@ -151,6 +151,7 @@ def new_locked_storage_object( ids=["simple object", "complex object"], indirect=True, ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_locked_object_cannot_be_deleted( self, request: FixtureRequest, @@ -343,6 +344,7 @@ def check_object_not_found(): [pytest.lazy_fixture("simple_object_size"), pytest.lazy_fixture("complex_object_size")], ids=["simple object", "complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_should_be_possible_to_lock_multiple_objects_at_once( self, request: FixtureRequest, @@ -438,6 +440,7 @@ def test_already_outdated_lock_should_not_be_applied( ids=["simple object", "complex object"], ) @expect_not_raises() + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_after_lock_expiration_with_lifetime_user_should_be_able_to_delete_object( self, request: FixtureRequest, @@ -588,6 +591,7 @@ def test_link_object_of_locked_complex_object_can_be_dropped( [pytest.lazy_fixture("complex_object_size")], indirect=True, ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_chunks_of_locked_complex_object_can_be_dropped( self, new_locked_storage_object: StorageObjectInfo ): diff --git a/pytest_tests/testsuites/services/http_gate/test_http_bearer.py b/pytest_tests/testsuites/services/http_gate/test_http_bearer.py index e1e5d7df1..7574c027d 100644 --- a/pytest_tests/testsuites/services/http_gate/test_http_bearer.py +++ b/pytest_tests/testsuites/services/http_gate/test_http_bearer.py @@ -100,6 +100,7 @@ def test_unable_put_without_bearer_token( [pytest.lazy_fixture("simple_object_size"), pytest.lazy_fixture("complex_object_size")], ids=["simple object", "complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_put_with_bearer_when_eacl_restrict( self, object_size: int, diff --git a/pytest_tests/testsuites/services/http_gate/test_http_gate.py b/pytest_tests/testsuites/services/http_gate/test_http_gate.py index ba0401534..e01eeae77 100644 --- a/pytest_tests/testsuites/services/http_gate/test_http_gate.py +++ b/pytest_tests/testsuites/services/http_gate/test_http_gate.py @@ -44,6 +44,7 @@ def prepare_wallet(self, default_wallet): TestHttpGate.wallet = default_wallet @allure.title("Test Put over gRPC, Get over HTTP") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_put_grpc_get_http(self, complex_object_size, simple_object_size): """ Test that object can be put using gRPC interface and get using HTTP. @@ -100,6 +101,7 @@ def test_put_grpc_get_http(self, complex_object_size, simple_object_size): @allure.link("https://github.com/nspcc-dev/neofs-http-gw#uploading", name="uploading") @allure.link("https://github.com/nspcc-dev/neofs-http-gw#downloading", name="downloading") @allure.title("Test Put over HTTP, Get over HTTP") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") @pytest.mark.smoke def test_put_http_get_http(self, complex_object_size, simple_object_size): """ @@ -248,6 +250,7 @@ def test_expiration_epoch_in_http(self, simple_object_size): for oid in not_expired_objects: get_via_http_gate(cid=cid, oid=oid, endpoint=http_endpoint) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") @allure.title("Test Zip in HTTP header") def test_zip_in_http(self, complex_object_size, simple_object_size): cid = create_container( @@ -288,6 +291,7 @@ def test_zip_in_http(self, complex_object_size, simple_object_size): @pytest.mark.long @allure.title("Test Put over HTTP/Curl, Get over HTTP/Curl for large object") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_put_http_get_http_large_file(self, complex_object_size): """ This test checks upload and download using curl with 'large' object. @@ -335,6 +339,7 @@ def test_put_http_get_http_large_file(self, complex_object_size): ) @allure.title("Test Put/Get over HTTP using Curl utility") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_put_http_get_http_curl(self, complex_object_size, simple_object_size): """ Test checks upload and download over HTTP using curl utility. diff --git a/pytest_tests/testsuites/services/http_gate/test_http_headers.py b/pytest_tests/testsuites/services/http_gate/test_http_headers.py index 83f807265..3cb4d510c 100644 --- a/pytest_tests/testsuites/services/http_gate/test_http_headers.py +++ b/pytest_tests/testsuites/services/http_gate/test_http_headers.py @@ -81,6 +81,7 @@ def storage_objects_with_attributes(self, request: FixtureRequest) -> list[Stora yield storage_objects + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") @allure.title("Get object1 by attribute") def test_object1_can_be_get_by_attr( self, storage_objects_with_attributes: list[StorageObjectInfo] @@ -105,6 +106,7 @@ def test_object1_can_be_get_by_attr( endpoint=self.cluster.default_http_gate_endpoint, ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") @allure.title("Test get object2 with different attributes, then delete object2 and get object1") def test_object2_can_be_get_by_attr( self, storage_objects_with_attributes: list[StorageObjectInfo] diff --git a/pytest_tests/testsuites/services/http_gate/test_http_object.py b/pytest_tests/testsuites/services/http_gate/test_http_object.py index 50ad72ac0..35b5ad037 100644 --- a/pytest_tests/testsuites/services/http_gate/test_http_object.py +++ b/pytest_tests/testsuites/services/http_gate/test_http_object.py @@ -34,6 +34,7 @@ def prepare_wallet(self, default_wallet): [pytest.lazy_fixture("simple_object_size"), pytest.lazy_fixture("complex_object_size")], ids=["simple object", "complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_object_put_get_attributes(self, object_size: int): """ Test that object can be put using gRPC interface and get using HTTP. diff --git a/pytest_tests/testsuites/services/http_gate/test_http_streaming.py b/pytest_tests/testsuites/services/http_gate/test_http_streaming.py index 851b2bf9e..c7a57055d 100644 --- a/pytest_tests/testsuites/services/http_gate/test_http_streaming.py +++ b/pytest_tests/testsuites/services/http_gate/test_http_streaming.py @@ -28,6 +28,7 @@ def prepare_wallet(self, default_wallet): [pytest.lazy_fixture("complex_object_size")], ids=["complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_object_can_be_put_get_by_streaming(self, object_size: int): """ Test that object can be put using gRPC interface and get using HTTP. diff --git a/pytest_tests/testsuites/services/http_gate/test_http_system_header.py b/pytest_tests/testsuites/services/http_gate/test_http_system_header.py index 358584008..46aa98363 100644 --- a/pytest_tests/testsuites/services/http_gate/test_http_system_header.py +++ b/pytest_tests/testsuites/services/http_gate/test_http_system_header.py @@ -206,6 +206,7 @@ def test_unable_put_expired_rfc(self, user_container: str, simple_object_size: i [pytest.lazy_fixture("simple_object_size"), pytest.lazy_fixture("complex_object_size")], ids=["simple object", "complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_http_attr_priority_epoch_duration( self, user_container: str, object_size: int, epoch_duration: int ): @@ -253,6 +254,7 @@ def test_http_attr_priority_epoch_duration( [pytest.lazy_fixture("simple_object_size"), pytest.lazy_fixture("complex_object_size")], ids=["simple object", "complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_http_attr_priority_dur_timestamp( self, user_container: str, object_size: int, epoch_duration: int ): @@ -307,6 +309,7 @@ def test_http_attr_priority_dur_timestamp( [pytest.lazy_fixture("simple_object_size"), pytest.lazy_fixture("complex_object_size")], ids=["simple object", "complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_http_attr_priority_timestamp_rfc( self, user_container: str, object_size: int, epoch_duration: int ): @@ -359,6 +362,7 @@ def test_http_attr_priority_timestamp_rfc( [pytest.lazy_fixture("simple_object_size"), pytest.lazy_fixture("complex_object_size")], ids=["simple object", "complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_http_rfc_object_unavailable_after_expir( self, user_container: str, object_size: int, epoch_duration: int ): diff --git a/pytest_tests/testsuites/services/s3_gate/test_s3_ACL.py b/pytest_tests/testsuites/services/s3_gate/test_s3_ACL.py index c8925ed5b..8d2450ae0 100644 --- a/pytest_tests/testsuites/services/s3_gate/test_s3_ACL.py +++ b/pytest_tests/testsuites/services/s3_gate/test_s3_ACL.py @@ -6,6 +6,7 @@ from steps import s3_gate_bucket, s3_gate_object from steps.s3_gate_base import TestS3GateBase +from aws_cli_client import AwsCliClient def pytest_generate_tests(metafunc): if "s3_client" in metafunc.fixturenames: @@ -17,6 +18,7 @@ def pytest_generate_tests(metafunc): class TestS3GateACL(TestS3GateBase): @pytest.mark.sanity @allure.title("Test S3: Object ACL") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/798") def test_s3_object_ACL(self, bucket, simple_object_size): file_path = generate_file(simple_object_size) file_name = object_key_from_file_path(file_path) @@ -48,6 +50,7 @@ def test_s3_object_ACL(self, bucket, simple_object_size): obj_acl = s3_gate_object.get_object_acl_s3(self.s3_client, bucket, file_name) assert_s3_acl(acl_grants=obj_acl, permitted_users="AllUsers") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/798") @allure.title("Test S3: Bucket ACL") def test_s3_bucket_ACL(self): with allure.step("Create bucket with ACL = public-read-write"): diff --git a/pytest_tests/testsuites/services/s3_gate/test_s3_bucket.py b/pytest_tests/testsuites/services/s3_gate/test_s3_bucket.py index f085cf456..fad018b83 100644 --- a/pytest_tests/testsuites/services/s3_gate/test_s3_bucket.py +++ b/pytest_tests/testsuites/services/s3_gate/test_s3_bucket.py @@ -13,19 +13,20 @@ from steps import s3_gate_bucket, s3_gate_object from steps.s3_gate_base import TestS3GateBase +from aws_cli_client import AwsCliClient def pytest_generate_tests(metafunc): if "s3_client" in metafunc.fixturenames: metafunc.parametrize("s3_client", ["aws cli", "boto3"], indirect=True) +@pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/798") @pytest.mark.s3_gate @pytest.mark.s3_gate_bucket class TestS3GateBucket(TestS3GateBase): @pytest.mark.sanity @allure.title("Test S3: Create Bucket with different ACL") def test_s3_create_bucket_with_ACL(self): - with allure.step("Create bucket with ACL private"): bucket = s3_gate_bucket.create_bucket_s3(self.s3_client, True, acl="private") bucket_acl = s3_gate_bucket.get_bucket_acl(self.s3_client, bucket) @@ -52,7 +53,6 @@ def test_s3_create_bucket_with_ACL(self): @allure.title("Test S3: Create Bucket with different ACL by grand") def test_s3_create_bucket_with_grands(self): - with allure.step("Create bucket with --grant-read"): bucket = s3_gate_bucket.create_bucket_s3( self.s3_client, diff --git a/pytest_tests/testsuites/services/s3_gate/test_s3_gate.py b/pytest_tests/testsuites/services/s3_gate/test_s3_gate.py index 629cf2437..d8a9814cc 100644 --- a/pytest_tests/testsuites/services/s3_gate/test_s3_gate.py +++ b/pytest_tests/testsuites/services/s3_gate/test_s3_gate.py @@ -33,6 +33,7 @@ def pytest_generate_tests(metafunc): metafunc.parametrize("s3_client", ["aws cli", "boto3"], indirect=True) +@pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/798") @allure.link("https://github.com/nspcc-dev/neofs-s3-gw#neofs-s3-gateway", name="neofs-s3-gateway") @pytest.mark.s3_gate @pytest.mark.s3_gate_base @@ -42,7 +43,6 @@ def test_s3_buckets(self, simple_object_size): """ Test base S3 Bucket API (Create/List/Head/Delete). """ - file_path = generate_file(simple_object_size) file_name = self.object_key_from_file_path(file_path) @@ -248,6 +248,7 @@ def test_s3_api_versioning(self, bucket, simple_object_size): ), f"Expected object content is\n{version_2_content}\nGot\n{got_content}" @pytest.mark.s3_gate_multipart + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/800") @allure.title("Test S3 Object Multipart API") def test_s3_api_multipart(self, bucket, simple_object_size): """ diff --git a/pytest_tests/testsuites/services/s3_gate/test_s3_locking.py b/pytest_tests/testsuites/services/s3_gate/test_s3_locking.py index bceff5eb8..0fefdc58b 100644 --- a/pytest_tests/testsuites/services/s3_gate/test_s3_locking.py +++ b/pytest_tests/testsuites/services/s3_gate/test_s3_locking.py @@ -9,12 +9,15 @@ from steps import s3_gate_bucket, s3_gate_object from steps.s3_gate_base import TestS3GateBase +from aws_cli_client import AwsCliClient + def pytest_generate_tests(metafunc): if "s3_client" in metafunc.fixturenames: metafunc.parametrize("s3_client", ["aws cli", "boto3"], indirect=True) +@pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/798") @pytest.mark.s3_gate @pytest.mark.s3_gate_locking @pytest.mark.parametrize("version_id", [None, "second"]) @@ -201,6 +204,7 @@ def test_s3_legal_hold(self, version_id, simple_object_size): ) +@pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/798") @pytest.mark.s3_gate class TestS3GateLockingBucket(TestS3GateBase): @allure.title("Test S3: Bucket Lock") diff --git a/pytest_tests/testsuites/services/s3_gate/test_s3_multipart.py b/pytest_tests/testsuites/services/s3_gate/test_s3_multipart.py index 0c6c5bd9c..4befc5fb2 100644 --- a/pytest_tests/testsuites/services/s3_gate/test_s3_multipart.py +++ b/pytest_tests/testsuites/services/s3_gate/test_s3_multipart.py @@ -6,6 +6,8 @@ from steps import s3_gate_bucket, s3_gate_object from steps.s3_gate_base import TestS3GateBase +from aws_cli_client import AwsCliClient + PART_SIZE = 5 * 1024 * 1024 @@ -14,9 +16,11 @@ def pytest_generate_tests(metafunc): metafunc.parametrize("s3_client", ["aws cli", "boto3"], indirect=True) +@pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/798") @pytest.mark.s3_gate @pytest.mark.s3_gate_multipart class TestS3GateMultipart(TestS3GateBase): + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/800") @allure.title("Test S3 Object Multipart API") def test_s3_object_multipart(self): bucket = s3_gate_bucket.create_bucket_s3(self.s3_client) @@ -61,6 +65,7 @@ def test_s3_object_multipart(self): got_object = s3_gate_object.get_object_s3(self.s3_client, bucket, object_key) assert get_file_hash(got_object) == get_file_hash(file_name_large) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/800") @allure.title("Test S3 Multipart abord") def test_s3_abort_multipart(self): bucket = s3_gate_bucket.create_bucket_s3(self.s3_client) @@ -89,6 +94,7 @@ def test_s3_abort_multipart(self): assert not uploads, f"Expected there is no uploads in bucket {bucket}" @allure.title("Test S3 Upload Part Copy") + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/800") def test_s3_multipart_copy(self): bucket = s3_gate_bucket.create_bucket_s3(self.s3_client) set_bucket_versioning(self.s3_client, bucket, s3_gate_bucket.VersioningStatus.ENABLED) diff --git a/pytest_tests/testsuites/services/s3_gate/test_s3_object.py b/pytest_tests/testsuites/services/s3_gate/test_s3_object.py index 391b56c4f..68a9e029a 100644 --- a/pytest_tests/testsuites/services/s3_gate/test_s3_object.py +++ b/pytest_tests/testsuites/services/s3_gate/test_s3_object.py @@ -28,6 +28,7 @@ def pytest_generate_tests(metafunc): metafunc.parametrize("s3_client", ["aws cli", "boto3"], indirect=True) +@pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/798") @pytest.mark.s3_gate @pytest.mark.s3_gate_object class TestS3GateObject(TestS3GateBase): @@ -240,6 +241,7 @@ def test_s3_copy_tagging(self, bucket, simple_object_size): for tag in expected_tags: assert tag in got_tags, f"Expected tag {tag} in {got_tags}" + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/801") @allure.title("Test S3: Delete version of object") def test_s3_delete_versioning(self, bucket, complex_object_size, simple_object_size): version_1_content = "Version 1" @@ -389,6 +391,7 @@ def test_s3_get_versioning(self, bucket, simple_object_size): object_3.get("VersionId") == version_id_2 ), f"Get object with version {version_id_2}" + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/802") @allure.title("Test S3: Get range") def test_s3_get_range(self, bucket, complex_object_size: int, simple_object_size: int): file_path = generate_file(complex_object_size) @@ -471,6 +474,7 @@ def test_s3_get_range(self, bucket, complex_object_size: int, simple_object_size con_file = concat_files([object_3_part_1, object_3_part_2, object_3_part_3]) assert get_file_hash(con_file) == get_file_hash(file_name_1), "Hashes must be the same" + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/801") @allure.title("Test S3: Copy object with metadata") @pytest.mark.smoke def test_s3_head_object(self, bucket, complex_object_size, simple_object_size): @@ -510,6 +514,7 @@ def test_s3_head_object(self, bucket, complex_object_size, simple_object_size): ), f"Expected VersionId is {version_id_1}" assert response.get("ContentLength") != 0, "Expected ContentLength is not zero" + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/801") @allure.title("Test S3: list of object with versions") @pytest.mark.parametrize("list_type", ["v1", "v2"]) def test_s3_list_object(self, list_type: str, bucket, complex_object_size): @@ -769,9 +774,9 @@ def test_s3_put_object_acl( object_7 = s3_gate_object.get_object_s3(self.s3_client, bucket, file_name_5) assert get_file_hash(file_path_7) == get_file_hash(object_7), "Hashes must be the same" + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/802") @allure.title("Test S3: put object with lock-mode") def test_s3_put_object_lock_mode(self, complex_object_size, simple_object_size): - file_path_1 = generate_file(complex_object_size) file_name = self.object_key_from_file_path(file_path_1) bucket = s3_gate_bucket.create_bucket_s3(self.s3_client, True) diff --git a/pytest_tests/testsuites/services/s3_gate/test_s3_policy.py b/pytest_tests/testsuites/services/s3_gate/test_s3_policy.py index 3933bfeb6..62bb058ea 100644 --- a/pytest_tests/testsuites/services/s3_gate/test_s3_policy.py +++ b/pytest_tests/testsuites/services/s3_gate/test_s3_policy.py @@ -10,6 +10,8 @@ from steps import s3_gate_bucket, s3_gate_object from steps.s3_gate_base import TestS3GateBase +from aws_cli_client import AwsCliClient + def pytest_generate_tests(metafunc): policy = f"{os.getcwd()}/robot/resources/files/policy.json" @@ -22,6 +24,7 @@ def pytest_generate_tests(metafunc): ) +@pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/798") @pytest.mark.s3_gate class TestS3GatePolicy(TestS3GateBase): @allure.title("Test S3: Verify bucket creation with retention policy applied") diff --git a/pytest_tests/testsuites/services/s3_gate/test_s3_tagging.py b/pytest_tests/testsuites/services/s3_gate/test_s3_tagging.py index df8a58e52..ff292d515 100644 --- a/pytest_tests/testsuites/services/s3_gate/test_s3_tagging.py +++ b/pytest_tests/testsuites/services/s3_gate/test_s3_tagging.py @@ -12,6 +12,8 @@ from steps import s3_gate_bucket, s3_gate_object from steps.s3_gate_base import TestS3GateBase +from aws_cli_client import AwsCliClient + def pytest_generate_tests(metafunc): if "s3_client" in metafunc.fixturenames: @@ -20,6 +22,7 @@ def pytest_generate_tests(metafunc): @pytest.mark.s3_gate @pytest.mark.s3_gate_tagging +@pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/798") class TestS3GateTagging(TestS3GateBase): @staticmethod def create_tags(count: int) -> Tuple[list, list]: @@ -80,7 +83,6 @@ def test_s3_object_tagging(self, bucket, simple_object_size): @allure.title("Test S3: bucket tagging") def test_s3_bucket_tagging(self, bucket): - with allure.step("Put 10 bucket tags"): tags_1 = self.create_tags(10) s3_gate_bucket.put_bucket_tagging(self.s3_client, bucket, tags_1) diff --git a/pytest_tests/testsuites/services/s3_gate/test_s3_versioning.py b/pytest_tests/testsuites/services/s3_gate/test_s3_versioning.py index 1307924b3..bf63f3f2a 100644 --- a/pytest_tests/testsuites/services/s3_gate/test_s3_versioning.py +++ b/pytest_tests/testsuites/services/s3_gate/test_s3_versioning.py @@ -8,6 +8,8 @@ from steps import s3_gate_bucket, s3_gate_object from steps.s3_gate_base import TestS3GateBase +from aws_cli_client import AwsCliClient + def pytest_generate_tests(metafunc): if "s3_client" in metafunc.fixturenames: @@ -16,6 +18,7 @@ def pytest_generate_tests(metafunc): @pytest.mark.s3_gate @pytest.mark.s3_gate_versioning +@pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-s3-gw/issues/798") class TestS3GateVersioning(TestS3GateBase): @staticmethod def object_key_from_file_path(full_path: str) -> str: @@ -23,7 +26,6 @@ def object_key_from_file_path(full_path: str) -> str: @allure.title("Test S3: try to disable versioning") def test_s3_version_off(self): - bucket = s3_gate_bucket.create_bucket_s3(self.s3_client, True) with pytest.raises(Exception): set_bucket_versioning(self.s3_client, bucket, s3_gate_bucket.VersioningStatus.SUSPENDED) diff --git a/pytest_tests/testsuites/session_token/test_object_session_token.py b/pytest_tests/testsuites/session_token/test_object_session_token.py index 9996fa15c..a5073ab91 100644 --- a/pytest_tests/testsuites/session_token/test_object_session_token.py +++ b/pytest_tests/testsuites/session_token/test_object_session_token.py @@ -21,6 +21,7 @@ class TestDynamicObjectSession(ClusterTestBase): [pytest.lazy_fixture("simple_object_size"), pytest.lazy_fixture("complex_object_size")], ids=["simple object", "complex object"], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2441") def test_object_session_token(self, default_wallet, object_size): """ Test how operations over objects are executed with a session token diff --git a/pytest_tests/testsuites/session_token/test_static_object_session_token.py b/pytest_tests/testsuites/session_token/test_static_object_session_token.py index f054b9fd9..9083295a9 100644 --- a/pytest_tests/testsuites/session_token/test_static_object_session_token.py +++ b/pytest_tests/testsuites/session_token/test_static_object_session_token.py @@ -159,6 +159,7 @@ class TestObjectStaticSession(ClusterTestBase): (get_object, ObjectVerb.GET), ], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_static_session_read( self, user_wallet: WalletFile, @@ -186,6 +187,7 @@ def test_static_session_read( session=static_sessions[verb], ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") @allure.title("Validate static session with range operations") @pytest.mark.static_session @pytest.mark.parametrize( @@ -476,6 +478,7 @@ def test_static_session_without_sign( session=session_token_file, ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") @allure.title("Validate static session which expires at next epoch") @pytest.mark.static_session def test_static_session_expiration_at_next( @@ -531,6 +534,7 @@ def test_static_session_expiration_at_next( session=token_expire_at_next_epoch, ) + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") @allure.title("Validate static session which is valid starting from next epoch") @pytest.mark.static_session def test_static_session_start_at_next( @@ -692,6 +696,7 @@ def test_static_session_put_verb( @allure.title("Validate static session which is issued in future epoch") @pytest.mark.static_session + @pytest.mark.skip(reason="https://github.com/nspcc-dev/neofs-node/issues/2440") def test_static_session_invalid_issued_epoch( self, owner_wallet: WalletFile,