# SPDX-License-Identifier: MIT from importlib import metadata import pytest import attr import attrs @pytest.fixture(name="mod", params=(attr, attrs)) def _mod(request): return request.param class TestLegacyMetadataHack: def test_version(self, mod, recwarn): """ __version__ returns the correct version and doesn't warn. """ assert metadata.version("attrs") == mod.__version__ assert [] == recwarn.list def test_does_not_exist(self, mod): """ Asking for unsupported dunders raises an AttributeError. """ with pytest.raises( AttributeError, match=f"module {mod.__name__} has no attribute __yolo__", ): mod.__yolo__ def test_version_info(self, recwarn, mod): """ ___version_info__ is not deprecated, therefore doesn't raise a warning and parses correctly. """ assert isinstance(mod.__version_info__, attr.VersionInfo) assert [] == recwarn.list