"""
Test utilities for :py:mod:`betty.copyright_notice`.
"""
from __future__ import annotations
from typing_extensions import override
from betty.copyright_notice import CopyrightNotice
from betty.locale.localizable import Localizable, plain
from betty.locale.localizer import DEFAULT_LOCALIZER
from betty.test_utils.plugin import (
DummyPlugin,
PluginInstanceTestBase,
)
[docs]
class CopyrightNoticeTestBase(PluginInstanceTestBase[CopyrightNotice]):
"""
A base class for testing :py:class:`betty.copyright_notice.CopyrightNotice` implementations.
"""
[docs]
def test_summary(self) -> None:
"""
Tests :py:meth:`betty.copyright_notice.CopyrightNotice.summary` implementations.
"""
for sut in self.get_sut_instances():
assert sut.summary.localize(DEFAULT_LOCALIZER)
[docs]
def test_text(self) -> None:
"""
Tests :py:meth:`betty.copyright_notice.CopyrightNotice.text` implementations.
"""
for sut in self.get_sut_instances():
assert sut.text.localize(DEFAULT_LOCALIZER)
[docs]
def test_url(self) -> None:
"""
Tests :py:meth:`betty.copyright_notice.CopyrightNotice.url` implementations.
"""
for sut in self.get_sut_instances():
url = sut.url
if url is not None:
assert url.localize(DEFAULT_LOCALIZER)