43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
# 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
|