From 23a3297ff1076d91ca6d70caadf9606f1fee0776 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Tue, 24 Jul 2018 05:05:57 -0700 Subject: [PATCH] [3.7] bpo-34136: Make test_do_not_recreate_annotations more reliable. (GH-8364) (GH-8365) (cherry picked from commit 06ca3f0c09d017b9d741553818459cca2d5da587) Co-authored-by: Serhiy Storchaka --- Lib/test/test_opcodes.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Lib/test/test_opcodes.py b/Lib/test/test_opcodes.py index 6806c616cbe..b2a22861880 100644 --- a/Lib/test/test_opcodes.py +++ b/Lib/test/test_opcodes.py @@ -1,7 +1,7 @@ # Python test set -- part 2, opcodes import unittest -from test import ann_module +from test import ann_module, support class OpcodeTest(unittest.TestCase): @@ -42,10 +42,13 @@ class OpcodeTest(unittest.TestCase): self.assertEqual(ns['__annotations__'], {'x': int, 1: 2}) def test_do_not_recreate_annotations(self): - class C: - del __annotations__ - with self.assertRaises(NameError): - x: int + # Don't rely on the existence of the '__annotations__' global. + with support.swap_item(globals(), '__annotations__', {}): + del globals()['__annotations__'] + class C: + del __annotations__ + with self.assertRaises(NameError): + x: int def test_raise_class_exceptions(self):