"""
Test utilities for :py:mod:`betty.plugin`.
"""
from typing import Generic, TypeVar
from betty.locale.localizable import Localizable, plain
from betty.locale.localizer import DEFAULT_LOCALIZER
from betty.machine_name import assert_machine_name, MachineName
from betty.plugin import Plugin
from betty.string import camel_case_to_kebab_case
from typing_extensions import override
_PluginT = TypeVar("_PluginT", bound=Plugin)
[docs]
class PluginTestBase(Generic[_PluginT]):
"""
A base class for testing :py:class:`betty.plugin.Plugin` implementations.
"""
[docs]
def get_sut_class(self) -> type[_PluginT]:
"""
Produce the class of the plugin under test.
"""
raise NotImplementedError