]> granicus.if.org Git - python/commitdiff
bpo-32416: Add two new tests in test_sys_settrace. (#5072)
authorSerhiy Storchaka <storchaka@gmail.com>
Mon, 1 Jan 2018 17:39:38 +0000 (19:39 +0200)
committerGitHub <noreply@github.com>
Mon, 1 Jan 2018 17:39:38 +0000 (19:39 +0200)
Move other test to more proper place.

Lib/test/test_sys_settrace.py

index b4b578cc9ddc8db0d347e81de718021c9bf78f0c..e6eb80ad86a88da5f33c3828bfb529c46e7b2b13 100644 (file)
@@ -789,6 +789,14 @@ class JumpTestCase(unittest.TestCase):
             output.append(6)
         output.append(7)
 
+    @jump_test(2, 4, [1, 4, 5, -4])
+    def test_jump_across_with(output):
+        output.append(1)
+        with tracecontext(output, 2):
+            output.append(3)
+        with tracecontext(output, 4):
+            output.append(5)
+
     @jump_test(8, 11, [1, 3, 5, 11, 12])
     def test_jump_out_of_complex_nested_blocks(output):
         output.append(1)
@@ -840,6 +848,17 @@ class JumpTestCase(unittest.TestCase):
             break
         output.append(13)
 
+    @jump_test(1, 7, [7, 8])
+    def test_jump_over_for_block_before_else(output):
+        output.append(1)
+        if not output:  # always false
+            for i in [3]:
+                output.append(4)
+        else:
+            output.append(6)
+            output.append(7)
+        output.append(8)
+
     # The second set of 'jump' tests are for things that are not allowed:
 
     @jump_test(2, 3, [1], (ValueError, 'after'))
@@ -997,21 +1016,24 @@ class JumpTestCase(unittest.TestCase):
         finally:
             output.append(5)
 
-    @jump_test(2, 4, [1, 4, 5, -4])
-    def test_jump_across_with(output):
+    @jump_test(3, 5, [1, 2, -2], (ValueError, 'into'))
+    def test_no_jump_between_with_blocks(output):
         output.append(1)
         with tracecontext(output, 2):
             output.append(3)
         with tracecontext(output, 4):
             output.append(5)
 
-    @jump_test(3, 5, [1, 2, -2], (ValueError, 'into'))
-    def test_jump_across_with_2(output):
+    @jump_test(7, 4, [1, 6], (ValueError, 'into'))
+    def test_no_jump_into_for_block_before_else(output):
         output.append(1)
-        with tracecontext(output, 2):
-            output.append(3)
-        with tracecontext(output, 4):
-            output.append(5)
+        if not output:  # always false
+            for i in [3]:
+                output.append(4)
+        else:
+            output.append(6)
+            output.append(7)
+        output.append(8)
 
     def test_no_jump_to_non_integers(self):
         self.run_test(no_jump_to_non_integers, 2, "Spam", [True])