@@ -2031,3 +2031,36 @@ def test_namespace_packages(pytester: Pytester, import_mode: str):
20312031 " <Function test_module3>" ,
20322032 ]
20332033 )
2034+
2035+
2036+ @pytest .mark .parametrize (
2037+ "parametrize_args, expected_indexs" ,
2038+ [
2039+ ("[(1, 1), (1, 1)]" , "{'1-1': [[]0, 1[]]}" ),
2040+ ("[(1, 1), (1, 2), (1, 1)]" , "{'1-1': [[]0, 2[]]}" ),
2041+ ("[(1, 1), (2, 2), (1, 1)]" , "{'1-1': [[]0, 2[]]}" ),
2042+ ("[(1, 1), (2, 2), (1, 2), (2, 1), (1, 1)]" , "{'1-1': [[]0, 4[]]}" ),
2043+ ],
2044+ )
2045+ def test_option_parametrize_require_unique_paramset_ids (
2046+ pytester : Pytester , parametrize_args , expected_indexs
2047+ ) -> None :
2048+ pytester .makepyfile (
2049+ f"""
2050+ import pytest
2051+ @pytest.mark.parametrize('y, x', { parametrize_args } )
2052+ def test1(y, x):
2053+ pass
2054+ """
2055+ )
2056+ result = pytester .runpytest ("--require-unique-paramset-ids" )
2057+ result .stdout .fnmatch_lines (
2058+ [
2059+ "E*Because: require_unique_parameterset_ids is set, pytest won't" ,
2060+ "E*attempt to generate unique IDs for parameter sets." ,
2061+ "E*argument names: [[]'y', 'x'[]]" ,
2062+ "E*function name: test1" ,
2063+ "E*test name: test_option_parametrize_require_unique_paramset_ids.py::test1" ,
2064+ f"E*duplicates: { expected_indexs !s} " ,
2065+ ]
2066+ )
0 commit comments