From 06ca3f0c09d017b9d741553818459cca2d5da587 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sat, 21 Jul 2018 07:44:04 +0300 Subject: bpo-34136: Make test_do_not_recreate_annotations more reliable. (GH-8364) --- Lib/test/test_opcodes.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Lib/test/test_opcodes.py b/Lib/test/test_opcodes.py index 6806c61..20de386 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): -- cgit v0.12