@@ -2031,3 +2031,36 @@ def test_namespace_packages(pytester: Pytester, import_mode: str):
2031
2031
" <Function test_module3>" ,
2032
2032
]
2033
2033
)
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