Merge pull request #11564 from nicoddemus/empty-string-parametrize-11563

Fix crash using empty string for parametrized value more than once
This commit is contained in:
Zac Hatfield-Dodds 2023-10-27 16:51:31 -04:00 committed by GitHub
commit 738ae2da9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 1 deletions

View File

@ -0,0 +1 @@
Fixed crash when using an empty string for the same parametrized value more than once.

View File

@ -1003,7 +1003,7 @@ class IdMaker:
for index, id in enumerate(resolved_ids):
if id_counts[id] > 1:
suffix = ""
if id[-1].isdigit():
if id and id[-1].isdigit():
suffix = "_"
new_id = f"{id}{suffix}{id_suffixes[id]}"
while new_id in set(resolved_ids):

View File

@ -626,6 +626,13 @@ class TestMetafunc:
).make_unique_parameterset_ids()
assert result == [expected]
def test_idmaker_duplicated_empty_str(self) -> None:
"""Regression test for empty strings parametrized more than once (#11563)."""
result = IdMaker(
("a",), [pytest.param(""), pytest.param("")], None, None, None, None, None
).make_unique_parameterset_ids()
assert result == ["0", "1"]
def test_parametrize_ids_exception(self, pytester: Pytester) -> None:
"""
:param pytester: the instance of Pytester class, a temporary