Files
shadow/tests/system/framework/topology.py
2025-02-24 22:57:12 +01:00

56 lines
1.4 KiB
Python

"""Predefined well-known topologies."""
from __future__ import annotations
from enum import unique
from typing import final
from pytest_mh import KnownTopologyBase, KnownTopologyGroupBase, Topology, TopologyDomain, TopologyMark
__all__ = [
"KnownTopology",
"KnownTopologyGroup",
]
@final
@unique
class KnownTopology(KnownTopologyBase):
"""
Well-known topologies that can be given to ``pytest.mark.topology``
directly. It is expected to use these values in favor of providing
custom marker values.
.. code-block:: python
:caption: Example usage
@pytest.mark.topology(KnownTopology.Shadow)
def test_ldap(shadow: Shadow):
assert True
"""
Shadow = TopologyMark(
name="shadow",
topology=Topology(TopologyDomain("shadow", shadow=1)),
fixtures=dict(shadow="shadow.shadow[0]"),
)
class KnownTopologyGroup(KnownTopologyGroupBase):
"""
Groups of well-known topologies that can be given to ``pytest.mark.topology``
directly. It is expected to use these values in favor of providing
custom marker values.
The test is parametrized and runs multiple times, once per each topology.
.. code-block:: python
:caption: Example usage (runs on Shadow topology)
@pytest.mark.topology(KnownTopologyGroup.AnyProvider)
def test_ldap(shadow: Shadow):
assert True
"""
AnyProvider = [KnownTopology.Shadow]