bpo-40807: Show warnings once from codeop._maybe_compile (#20486)
* bpo-40807: Show warnings once from codeop._maybe_compile
* Move catch_warnings
* news
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
diff --git a/Lib/test/test_codeop.py b/Lib/test/test_codeop.py
index 0c5e362..45cb1a7 100644
--- a/Lib/test/test_codeop.py
+++ b/Lib/test/test_codeop.py
@@ -303,6 +303,11 @@
self.assertNotEqual(compile_command("a = 1\n", "abc").co_filename,
compile("a = 1\n", "def", 'single').co_filename)
+ def test_warning(self):
+ # Test that the warning is only returned once.
+ with support.check_warnings((".*literal", SyntaxWarning)) as w:
+ compile_command("0 is 0")
+ self.assertEqual(len(w.warnings), 1)
if __name__ == "__main__":
unittest.main()