Skip to content

Commit fa21224

Browse files
author
hauntsaninja
committed
del: add even more tests
1 parent 8b4ead5 commit fa21224

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

Lib/test/test_grammar.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -805,6 +805,7 @@ def test_del_stmt(self):
805805
del x
806806
del y,
807807
del (z)
808+
del ()
808809

809810
a, b, c, d, e, f, g = "abcdefg"
810811
del a, (b, c), (d, (e, f))

Lib/test/test_syntax.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -664,7 +664,7 @@ def _check_error(self, code, errtext,
664664
self.fail("SyntaxError is not a %s" % subclass.__name__)
665665
mo = re.search(errtext, str(err))
666666
if mo is None:
667-
self.fail("SyntaxError did not contain '%r'" % (errtext,))
667+
self.fail("SyntaxError did not contain %r" % (errtext,))
668668
self.assertEqual(err.filename, filename)
669669
if lineno is not None:
670670
self.assertEqual(err.lineno, lineno)
@@ -677,6 +677,7 @@ def test_assign_call(self):
677677
self._check_error("f() = 1", "assign")
678678

679679
def test_assign_del(self):
680+
self._check_error("del (,)", "invalid syntax")
680681
self._check_error("del 1", "delete literal")
681682
self._check_error("del (1, 2)", "delete literal")
682683
self._check_error("del None", "delete None")
@@ -690,12 +691,17 @@ def test_assign_del(self):
690691
self._check_error("del a[0]()", "delete function call")
691692
self._check_error("del x, f()", "delete function call")
692693
self._check_error("del f(), x", "delete function call")
694+
self._check_error("del [a, b, ((c), (d,), e.f())]", "delete function call")
693695
self._check_error("del (a if True else b)", "delete conditional")
694696
self._check_error("del +a", "delete operator")
695697
self._check_error("del a, +b", "delete operator")
696698
self._check_error("del a + b", "delete operator")
697699
self._check_error("del (a + b, c)", "delete operator")
698700
self._check_error("del (c[0], a + b)", "delete operator")
701+
self._check_error("del a.b.c + 2", "delete operator")
702+
self._check_error("del a.b.c[0] + 2", "delete operator")
703+
self._check_error("del (a, b, (c, d.e.f + 2))", "delete operator")
704+
self._check_error("del [a, b, (c, d.e.f[0] + 2)]", "delete operator")
699705
self._check_error("del (a := 5)", "delete named expression")
700706
# We don't have a special message for this, but make sure we don't
701707
# report "cannot delete name"

0 commit comments

Comments
 (0)