55 lines
1.4 KiB
Python
55 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]
|