Merge pull request #3052 from InspectorCaracal/fix-iter-to-str

Fix `iter_to_str` endsep behavior with two items
This commit is contained in:
Griatch 2023-01-06 18:14:29 +01:00 committed by GitHub
commit d5d92cd744
2 changed files with 2 additions and 1 deletions

View file

@ -93,6 +93,7 @@ class TestListToString(TestCase):
'"1", "2" and "3"', utils.list_to_string([1, 2, 3], endsep="and", addquote=True)
)
self.assertEqual("1 and 2", utils.list_to_string([1, 2]))
self.assertEqual("1, 2", utils.list_to_string([1, 2], endsep=","))
class TestMLen(TestCase):

View file

@ -448,7 +448,7 @@ def iter_to_str(iterable, sep=",", endsep=", and", addquote=False):
iterable = tuple(str(val) for val in iterable)
if endsep:
if endsep.startswith(sep):
if endsep.startswith(sep) and endsep != sep:
# oxford comma alternative
endsep = endsep[1:] if len_iter < 3 else endsep
elif endsep[0] not in punctuation: