Propagate testing platform updates to 0.40 #314
3 changed files with 19 additions and 1 deletions
|
@ -1,3 +1,4 @@
|
||||||
__version__ = "2.0.1"
|
__version__ = "2.0.1"
|
||||||
|
|
||||||
from .fixtures import configure_testlib, hosting, temp_directory
|
from .fixtures import configure_testlib, hosting, temp_directory
|
||||||
|
from .hooks import pytest_collection_modifyitems
|
||||||
|
|
13
src/frostfs_testlib/hooks.py
Normal file
13
src/frostfs_testlib/hooks.py
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.hookimpl
|
||||||
|
def pytest_collection_modifyitems(items: list[pytest.Item]):
|
||||||
|
# All tests which reside in frostfs nodeid are granted with frostfs marker, excluding
|
||||||
|
# nodeid = full path of the test
|
||||||
|
# 1. plugins
|
||||||
|
# 2. testlib itself
|
||||||
|
for item in items:
|
||||||
|
location = item.location[0]
|
||||||
|
if "frostfs" in location and "plugin" not in location and "testlib" not in location:
|
||||||
|
item.add_marker("frostfs")
|
|
@ -1,3 +1,4 @@
|
||||||
|
import itertools
|
||||||
import random
|
import random
|
||||||
import re
|
import re
|
||||||
import string
|
import string
|
||||||
|
@ -7,6 +8,9 @@ ONLY_ASCII_LETTERS = string.ascii_letters
|
||||||
DIGITS_AND_ASCII_LETTERS = string.ascii_letters + string.digits
|
DIGITS_AND_ASCII_LETTERS = string.ascii_letters + string.digits
|
||||||
NON_DIGITS_AND_LETTERS = string.punctuation
|
NON_DIGITS_AND_LETTERS = string.punctuation
|
||||||
|
|
||||||
|
# if unique_name is called multiple times within the same microsecond, append 0-4 to the name so it surely unique
|
||||||
|
FUSE = itertools.cycle(range(5))
|
||||||
|
|
||||||
|
|
||||||
def unique_name(prefix: str = "", postfix: str = ""):
|
def unique_name(prefix: str = "", postfix: str = ""):
|
||||||
"""
|
"""
|
||||||
|
@ -18,7 +22,7 @@ def unique_name(prefix: str = "", postfix: str = ""):
|
||||||
Returns:
|
Returns:
|
||||||
unique name string
|
unique name string
|
||||||
"""
|
"""
|
||||||
return f"{prefix}{hex(int(datetime.now().timestamp() * 1000000))}{postfix}"
|
return f"{prefix}{hex(int(datetime.now().timestamp() * 1000000))}{next(FUSE)}{postfix}"
|
||||||
|
|
||||||
|
|
||||||
def random_string(length: int = 5, source: str = ONLY_ASCII_LETTERS):
|
def random_string(length: int = 5, source: str = ONLY_ASCII_LETTERS):
|
||||||
|
|
Loading…
Reference in a new issue