]> granicus.if.org Git - python/commitdiff
[3.6] Test atexit shutdown mechanism in a subprocess (GH-4828) (#4829)
authorAntoine Pitrou <pitrou@free.fr>
Wed, 13 Dec 2017 10:53:59 +0000 (11:53 +0100)
committerGitHub <noreply@github.com>
Wed, 13 Dec 2017 10:53:59 +0000 (11:53 +0100)
* Test atexit shutdown mechanism in a subprocess.
(cherry picked from commit fc5db95e0063eafa2bfb7f487fcaad5a7c4b65a1)

Lib/test/test_atexit.py

index 1d0b018aafaf934349eafe57d652b5345e545cf9..aa56388ef608817ca6b283bf32ca912a5f645f36 100644 (file)
@@ -3,6 +3,7 @@ import unittest
 import io
 import atexit
 from test import support
+from test.support import script_helper
 
 ### helpers
 def h1():
@@ -152,6 +153,21 @@ class GeneralTest(unittest.TestCase):
         atexit._run_exitfuncs()
         self.assertEqual(l, [5])
 
+    def test_shutdown(self):
+        # Actually test the shutdown mechanism in a subprocess
+        code = """if 1:
+            import atexit
+
+            def f(msg):
+                print(msg)
+
+            atexit.register(f, "one")
+            atexit.register(f, "two")
+            """
+        res = script_helper.assert_python_ok("-c", code)
+        self.assertEqual(res.out.decode().splitlines(), ["two", "one"])
+        self.assertFalse(res.err)
+
 
 @support.cpython_only
 class SubinterpreterTest(unittest.TestCase):