Skip to content

Commit cad3eb2

Browse files
miss-islingtonambv
andcommitted
lib2to3: Add more tests (pythonGH-6101) (python#6109)
(cherry picked from commit 74f5687) Co-authored-by: Łukasz Langa <[email protected]>
1 parent cf61a81 commit cad3eb2

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed

Diff for: Lib/lib2to3/tests/test_parser.py

+108
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,78 @@ def test_argument_unpacking_2(self):
274274
def test_argument_unpacking_3(self):
275275
self.validate("""f(2, *a, *b, **b, **c, **d)""")
276276

277+
def test_trailing_commas_1(self):
278+
self.validate("def f(a, b): call(a, b)")
279+
self.validate("def f(a, b,): call(a, b,)")
280+
281+
def test_trailing_commas_2(self):
282+
self.validate("def f(a, *b): call(a, *b)")
283+
self.validate("def f(a, *b,): call(a, *b,)")
284+
285+
def test_trailing_commas_3(self):
286+
self.validate("def f(a, b=1): call(a, b=1)")
287+
self.validate("def f(a, b=1,): call(a, b=1,)")
288+
289+
def test_trailing_commas_4(self):
290+
self.validate("def f(a, **b): call(a, **b)")
291+
self.validate("def f(a, **b,): call(a, **b,)")
292+
293+
def test_trailing_commas_5(self):
294+
self.validate("def f(*a, b=1): call(*a, b=1)")
295+
self.validate("def f(*a, b=1,): call(*a, b=1,)")
296+
297+
def test_trailing_commas_6(self):
298+
self.validate("def f(*a, **b): call(*a, **b)")
299+
self.validate("def f(*a, **b,): call(*a, **b,)")
300+
301+
def test_trailing_commas_7(self):
302+
self.validate("def f(*, b=1): call(*b)")
303+
self.validate("def f(*, b=1,): call(*b,)")
304+
305+
def test_trailing_commas_8(self):
306+
self.validate("def f(a=1, b=2): call(a=1, b=2)")
307+
self.validate("def f(a=1, b=2,): call(a=1, b=2,)")
308+
309+
def test_trailing_commas_9(self):
310+
self.validate("def f(a=1, **b): call(a=1, **b)")
311+
self.validate("def f(a=1, **b,): call(a=1, **b,)")
312+
313+
def test_trailing_commas_lambda_1(self):
314+
self.validate("f = lambda a, b: call(a, b)")
315+
self.validate("f = lambda a, b,: call(a, b,)")
316+
317+
def test_trailing_commas_lambda_2(self):
318+
self.validate("f = lambda a, *b: call(a, *b)")
319+
self.validate("f = lambda a, *b,: call(a, *b,)")
320+
321+
def test_trailing_commas_lambda_3(self):
322+
self.validate("f = lambda a, b=1: call(a, b=1)")
323+
self.validate("f = lambda a, b=1,: call(a, b=1,)")
324+
325+
def test_trailing_commas_lambda_4(self):
326+
self.validate("f = lambda a, **b: call(a, **b)")
327+
self.validate("f = lambda a, **b,: call(a, **b,)")
328+
329+
def test_trailing_commas_lambda_5(self):
330+
self.validate("f = lambda *a, b=1: call(*a, b=1)")
331+
self.validate("f = lambda *a, b=1,: call(*a, b=1,)")
332+
333+
def test_trailing_commas_lambda_6(self):
334+
self.validate("f = lambda *a, **b: call(*a, **b)")
335+
self.validate("f = lambda *a, **b,: call(*a, **b,)")
336+
337+
def test_trailing_commas_lambda_7(self):
338+
self.validate("f = lambda *, b=1: call(*b)")
339+
self.validate("f = lambda *, b=1,: call(*b,)")
340+
341+
def test_trailing_commas_lambda_8(self):
342+
self.validate("f = lambda a=1, b=2: call(a=1, b=2)")
343+
self.validate("f = lambda a=1, b=2,: call(a=1, b=2,)")
344+
345+
def test_trailing_commas_lambda_9(self):
346+
self.validate("f = lambda a=1, **b: call(a=1, **b)")
347+
self.validate("f = lambda a=1, **b,: call(a=1, **b,)")
348+
277349

278350
# Adapted from Python 3's Lib/test/test_grammar.py:GrammarTests.testFuncdef
279351
class TestFunctionAnnotations(GrammarTest):
@@ -335,6 +407,42 @@ def test_12(self):
335407
call(*args,)"""
336408
self.validate(s)
337409

410+
def test_13(self):
411+
self.validate("def f(a: str, b: int) -> None: call(a, b)")
412+
self.validate("def f(a: str, b: int,) -> None: call(a, b,)")
413+
414+
def test_14(self):
415+
self.validate("def f(a: str, *b: int) -> None: call(a, *b)")
416+
self.validate("def f(a: str, *b: int,) -> None: call(a, *b,)")
417+
418+
def test_15(self):
419+
self.validate("def f(a: str, b: int=1) -> None: call(a, b=1)")
420+
self.validate("def f(a: str, b: int=1,) -> None: call(a, b=1,)")
421+
422+
def test_16(self):
423+
self.validate("def f(a: str, **b: int) -> None: call(a, **b)")
424+
self.validate("def f(a: str, **b: int,) -> None: call(a, **b,)")
425+
426+
def test_17(self):
427+
self.validate("def f(*a: str, b: int=1) -> None: call(*a, b=1)")
428+
self.validate("def f(*a: str, b: int=1,) -> None: call(*a, b=1,)")
429+
430+
def test_18(self):
431+
self.validate("def f(*a: str, **b: int) -> None: call(*a, **b)")
432+
self.validate("def f(*a: str, **b: int,) -> None: call(*a, **b,)")
433+
434+
def test_19(self):
435+
self.validate("def f(*, b: int=1) -> None: call(*b)")
436+
self.validate("def f(*, b: int=1,) -> None: call(*b,)")
437+
438+
def test_20(self):
439+
self.validate("def f(a: str='', b: int=2) -> None: call(a=a, b=2)")
440+
self.validate("def f(a: str='', b: int=2,) -> None: call(a=a, b=2,)")
441+
442+
def test_21(self):
443+
self.validate("def f(a: str='', **b: int) -> None: call(a=a, **b)")
444+
self.validate("def f(a: str='', **b: int,) -> None: call(a=a, **b,)")
445+
338446

339447
# Adapted from Python 3's Lib/test/test_grammar.py:GrammarTests.test_var_annot
340448
class TestVarAnnotations(GrammarTest):

0 commit comments

Comments
 (0)