[Python-checkins] bpo-31657: Add test coverage for the __debug__ case (GH-3450)

Mariatta webhook-mailer at python.org
Tue Oct 3 12:46:59 EDT 2017


https://github.com/python/cpython/commit/543386b7f077d210ea0722079d68beb6c066730a
commit: 543386b7f077d210ea0722079d68beb6c066730a
branch: master
author: diana <diana.joan.clarke at gmail.com>
committer: Mariatta <Mariatta at users.noreply.github.com>
date: 2017-10-03T09:46:56-07:00
summary:

bpo-31657: Add test coverage for the __debug__ case (GH-3450)

Update the compile tests for optimization levels to also check that
__debug__ blocks are included or excluded based on the optimization
level.
Patch by Diana Clarke.

files:
M Lib/test/test_builtin.py

diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index 9d949b74cb8..87dcda7b434 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -328,19 +328,22 @@ def test_compile(self):
 
         codestr = '''def f():
         """doc"""
+        debug_enabled = False
+        if __debug__:
+            debug_enabled = True
         try:
             assert False
         except AssertionError:
-            return (True, f.__doc__)
+            return (True, f.__doc__, debug_enabled)
         else:
-            return (False, f.__doc__)
+            return (False, f.__doc__, debug_enabled)
         '''
         def f(): """doc"""
-        values = [(-1, __debug__, f.__doc__),
-                  (0, True, 'doc'),
-                  (1, False, 'doc'),
-                  (2, False, None)]
-        for optval, debugval, docstring in values:
+        values = [(-1, __debug__, f.__doc__, __debug__),
+                  (0, True, 'doc', True),
+                  (1, False, 'doc', False),
+                  (2, False, None, False)]
+        for optval, assertval, docstring, debugval in values:
             # test both direct compilation and compilation via AST
             codeobjs = []
             codeobjs.append(compile(codestr, "<test>", "exec", optimize=optval))
@@ -350,7 +353,7 @@ def f(): """doc"""
                 ns = {}
                 exec(code, ns)
                 rv = ns['f']()
-                self.assertEqual(rv, (debugval, docstring))
+                self.assertEqual(rv, (assertval, docstring, debugval))
 
     def test_delattr(self):
         sys.spam = 1



More information about the Python-checkins mailing list