Fix test policies #244

Merged
d.zayakin merged 2 commits from d.zayakin/frostfs-testcases:fix-object-policy-test into master 2024-06-05 06:52:02 +00:00

View file

@ -94,11 +94,17 @@ def generate_ranges(
scope="module" scope="module"
) )
def storage_objects( def storage_objects(
default_wallet: WalletInfo, client_shell: Shell, cluster: Cluster, object_size: ObjectSize, placement_policy: PlacementPolicy default_wallet: WalletInfo,
client_shell: Shell,
cluster: Cluster,
object_size: ObjectSize,
placement_policy: PlacementPolicy,
) -> list[StorageObjectInfo]: ) -> list[StorageObjectInfo]:
wallet = default_wallet wallet = default_wallet
# Separate containers for complex/simple objects to avoid side-effects # Separate containers for complex/simple objects to avoid side-effects
cid = create_container(wallet, shell=client_shell, rule=placement_policy.value, endpoint=cluster.default_rpc_endpoint) cid = create_container(
wallet, shell=client_shell, rule=placement_policy.value, endpoint=cluster.default_rpc_endpoint
)
file_path = generate_file(object_size.value) file_path = generate_file(object_size.value)
file_hash = get_file_hash(file_path) file_hash = get_file_hash(file_path)
@ -132,6 +138,13 @@ def storage_objects(
delete_objects(storage_objects, client_shell, cluster) delete_objects(storage_objects, client_shell, cluster)
@pytest.fixture()
def expected_object_copies(placement_policy: PlacementPolicy) -> int:
if placement_policy.name == "rep":
return 2
return 4
@pytest.mark.sanity @pytest.mark.sanity
@pytest.mark.grpc_api @pytest.mark.grpc_api
class TestObjectApi(ClusterTestBase): class TestObjectApi(ClusterTestBase):
@ -140,6 +153,7 @@ class TestObjectApi(ClusterTestBase):
self, self,
storage_objects: list[StorageObjectInfo], storage_objects: list[StorageObjectInfo],
simple_object_size: ObjectSize, simple_object_size: ObjectSize,
expected_object_copies: int,
): ):
""" """
Validate object storage policy Validate object storage policy
@ -163,7 +177,7 @@ class TestObjectApi(ClusterTestBase):
shell=self.shell, shell=self.shell,
nodes=self.cluster.storage_nodes, nodes=self.cluster.storage_nodes,
) )
assert copies == 2, "Expected 2 copies" assert copies == expected_object_copies, f"Expected {expected_object_copies} copies"
@allure.title("Get object by native API (obj_size={object_size}, policy={placement_policy})") @allure.title("Get object by native API (obj_size={object_size}, policy={placement_policy})")
def test_get_object_api(self, storage_objects: list[StorageObjectInfo]): def test_get_object_api(self, storage_objects: list[StorageObjectInfo]):