2121"""
2222
2323import pytest
24+ import sys
2425
2526from typing import Iterator , List
2627
@@ -47,11 +48,36 @@ def _xfail(*args):
4748 return pytest .param (* args , marks = pytest .mark .xfail )
4849
4950
51+ def _setuptools_scm_version_conflict () -> bool :
52+ """
53+ Check whether the conditions exist to trigger the ``setuptools_scm`` version
54+ conflict. If these conditions exist, certain tests should be skipped.
55+ See `issue 145 <https://github.com/diazona/setuptools-pyproject-migration/issues/145>`_.
56+ """
57+
58+ if sys .version_info < (3 , 12 ):
59+ return False
60+ from test_support import importlib_metadata
61+ from packaging .version import Version
62+
63+ try :
64+ setuptools_scm_version = Version (importlib_metadata .version ("setuptools_scm" ))
65+ except importlib_metadata .PackageNotFoundError :
66+ return False
67+ return setuptools_scm_version < Version ("6" )
68+
69+
5070distributions : List = [
5171 # e.g.
5272 # GitHubDistribution(url, commit-ish)
5373 # PyPiDistribution(name, version)
54- _xfail (PyPiDistribution ("pytest" , "7.3.0" )),
74+ pytest .param (
75+ PyPiDistribution ("pytest" , "7.3.0" ),
76+ marks = [
77+ pytest .mark .xfail ,
78+ pytest .mark .skipif (_setuptools_scm_version_conflict (), reason = "Issue #145" ),
79+ ],
80+ ),
5581 _xfail (PyPiDistribution ("pytest-localserver" , "0.8.0" )),
5682 PyPiDistribution ("aioax25" , "0.0.11.post0" , make_importable = True ),
5783]
0 commit comments