From: Serhiy Storchaka Date: Sat, 21 Jul 2018 04:44:04 +0000 (+0300) Subject: bpo-34136: Make test_do_not_recreate_annotations more reliable. (GH-8364) X-Git-Tag: v3.8.0a1~1349 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=06ca3f0c09d017b9d741553818459cca2d5da587;p=python bpo-34136: Make test_do_not_recreate_annotations more reliable. (GH-8364) --- diff --git a/Lib/test/test_opcodes.py b/Lib/test/test_opcodes.py index 6806c616cb..20de3867bf 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,14 @@ 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 + annotations = {} + # Don't rely on the existence of the '__annotations__' global. + with support.swap_item(globals(), '__annotations__', annotations): + class C: + del __annotations__ + x: int # Updates the '__annotations__' global. + self.assertIn('x', annotations) + self.assertIs(annotations['x'], int) def test_raise_class_exceptions(self):