forked from TrueCloudLab/frostfs-testcases
40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
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)
|