import os import random from datetime import datetime import allure import pytest from frostfs_testlib.storage.cluster import Cluster, ClusterNode from frostfs_testlib.storage.controllers import ShardsWatcher from frostfs_testlib.storage.dataclasses.object_size import ObjectSize from frostfs_testlib.utils.file_utils import generate_file @pytest.fixture() @allure.title("Select random node for testing") def node_under_test(cluster: Cluster) -> ClusterNode: selected_node = random.choice(cluster.cluster_nodes) allure.attach(f"{selected_node}", "Selected node", allure.attachment_type.TEXT) return selected_node @pytest.fixture() @allure.title("Provide Shards watcher") def shards_watcher(node_under_test: ClusterNode) -> ShardsWatcher: watcher = ShardsWatcher(node_under_test) return watcher @pytest.fixture() @allure.title("Test start time") def test_start_time() -> datetime: start_time = datetime.utcnow() return start_time @pytest.fixture() @allure.title("Generate simple size file") def simple_file(simple_object_size: ObjectSize) -> str: path_file = generate_file(size=simple_object_size.value) yield path_file os.remove(path_file)