Add wait_for_zones_loaded fixture
The wait_for_zones_loaded fixture waits for the "all zones loaded" message in the named log file before the test function can proceed.
This commit is contained in:
@@ -356,6 +356,27 @@ def mlogger(system_test_name):
|
||||
return logging.getLogger(system_test_name)
|
||||
|
||||
|
||||
def _get_marker(node, marker):
|
||||
try:
|
||||
# pytest >= 4.x
|
||||
return node.get_closest_marker(marker)
|
||||
except AttributeError:
|
||||
# pytest < 4.x
|
||||
return node.get_marker(marker)
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def wait_for_zones_loaded(request, servers):
|
||||
"""Wait for all zones to be loaded by specified named instances."""
|
||||
instances = _get_marker(request.node, "requires_zones_loaded")
|
||||
if not instances:
|
||||
return
|
||||
|
||||
for instance in instances.args:
|
||||
with servers[instance].watch_log_from_start() as watcher:
|
||||
watcher.wait_for_line("all zones loaded")
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def logger(request, system_test_name):
|
||||
"""Logging facility specific to a particular test."""
|
||||
|
||||
@@ -18,3 +18,5 @@ log_level = INFO
|
||||
python_files = tests_*.py
|
||||
junit_logging = log
|
||||
junit_log_passing_tests = 0
|
||||
markers =
|
||||
requires_zones_loaded: ensures the test does not start until the specified named instances load all configured zones
|
||||
|
||||
Reference in New Issue
Block a user