gh-131927: Prevent emitting optimizer warnings twice in the REPL (#131993)

This commit is contained in:
Tomas R. 2025-04-12 12:34:36 +02:00 committed by GitHub
parent d4e2cdc15b
commit 3d08c8ad20
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 74 additions and 2 deletions

View file

@ -1646,6 +1646,24 @@ class TestSpecifics(unittest.TestCase):
self.assertRaises(NameError, ns['foo'])
def test_compile_warnings(self):
# See gh-131927
# Compile warnings originating from the same file and
# line are now only emitted once.
with warnings.catch_warnings(record=True) as caught:
warnings.simplefilter("default")
compile('1 is 1', '<stdin>', 'eval')
compile('1 is 1', '<stdin>', 'eval')
self.assertEqual(len(caught), 1)
with warnings.catch_warnings(record=True) as caught:
warnings.simplefilter("always")
compile('1 is 1', '<stdin>', 'eval')
compile('1 is 1', '<stdin>', 'eval')
self.assertEqual(len(caught), 2)
class TestBooleanExpression(unittest.TestCase):
class Value:
def __init__(self):