Index: Python/frozen.c =================================================================== --- Python/frozen.c (Revision 58923) +++ Python/frozen.c (Arbeitskopie) @@ -8,19 +8,18 @@ some famous words... */ /* To regenerate this data after the bytecode or marshal format has changed, - go to ../Tools/freeze/ and freeze the hello.py file; then copy and paste + go to ../Tools/freeze/ and freeze the flag.py file; then copy and paste the appropriate bytes from M___main__.c. */ static unsigned char M___hello__[] = { - 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,64,0,0,0,115,14,0,0,0,101,0,0,100,0,0, - 131,1,0,1,100,1,0,83,40,2,0,0,0,117,14,0, - 0,0,72,101,108,108,111,32,119,111,114,108,100,46,46,46, - 78,40,1,0,0,0,117,5,0,0,0,112,114,105,110,116, - 40,0,0,0,0,40,0,0,0,0,40,0,0,0,0,117, - 8,0,0,0,104,101,108,108,111,46,112,121,117,8,0,0, - 0,60,109,111,100,117,108,101,62,1,0,0,0,115,0,0, - 0,0, + 99,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,64,0,0,0,115,10,0,0,0,100,1,0,90,1,0, + 100,0,0,83,40,2,0,0,0,78,84,40,2,0,0,0, + 117,4,0,0,0,84,114,117,101,117,11,0,0,0,105,110, + 105,116,105,97,108,105,122,101,100,40,0,0,0,0,40,0, + 0,0,0,40,0,0,0,0,117,7,0,0,0,102,108,97, + 103,46,112,121,117,8,0,0,0,60,109,111,100,117,108,101, + 62,1,0,0,0,115,0,0,0,0, }; #define SIZE (int)sizeof(M___hello__) Index: Tools/freeze/flag.py =================================================================== --- Tools/freeze/flag.py (Revision 0) +++ Tools/freeze/flag.py (Revision 0) @@ -0,0 +1,2 @@ +initialized = True + Eigenschaftsänderungen: Tools/freeze/flag.py ___________________________________________________________________ Name: svn:keywords + 'Id Revision' Name: svn:eol-style + native Index: Lib/test/test_frozen.py =================================================================== --- Lib/test/test_frozen.py (Revision 58923) +++ Lib/test/test_frozen.py (Arbeitskopie) @@ -4,38 +4,42 @@ from test.test_support import captured_stdout, run_unittest import unittest import sys, os +import warnings class FrozenTests(unittest.TestCase): def test_frozen(self): + try: + import __hello__ + except ImportError as x: + self.fail("import __hello__ failed:" + str(x)) + self.assertEqual(__hello__.initialized, True) + self.assertEqual(len(dir(__hello__)), 5) - with captured_stdout() as stdout: - try: - import __hello__ - except ImportError as x: - self.fail("import __hello__ failed:" + str(x)) + try: + import __phello__ + except ImportError as x: + self.fail("import __phello__ failed:" + str(x)) + self.assertEqual(__phello__.initialized, True) + if not "__phello__.spam" in sys.modules: + self.assertEqual(len(dir(__phello__)), 6, dir(__phello__)) + else: + self.assertEqual(len(dir(__phello__)), 7, dir(__phello__)) - try: - import __phello__ - except ImportError as x: - self.fail("import __phello__ failed:" + str(x)) + try: + import __phello__.spam + except ImportError as x: + self.fail("import __phello__.spam failed:" + str(x)) + self.assertEqual(__phello__.spam.initialized, True) + self.assertEqual(len(dir(__phello__.spam)), 5) + self.assertEqual(len(dir(__phello__)), 7) - try: - import __phello__.spam - except ImportError as x: - self.fail("import __phello__.spam failed:" + str(x)) + try: + import __phello__.foo + except ImportError: + pass + else: + self.fail("import __phello__.foo should have failed") - if sys.platform != "mac": # On the Mac this import does succeed. - try: - import __phello__.foo - except ImportError: - pass - else: - self.fail("import __phello__.foo should have failed") - - self.assertEquals(stdout.getvalue(), - 'Hello world...\nHello world...\nHello world...\n') - - def test_main(): run_unittest(FrozenTests) Index: Lib/test/test_pkg.py =================================================================== --- Lib/test/test_pkg.py (Revision 58923) +++ Lib/test/test_pkg.py (Arbeitskopie) @@ -6,6 +6,7 @@ import textwrap import traceback import unittest +import warnings from test import test_support @@ -51,7 +52,8 @@ def tearDown(self): sys.path[:] = self.syspath - cleanout(self.root) + if self.root is not None: + cleanout(self.root) def run_code(self, code): exec(textwrap.dedent(code), globals(), {"self": self}) @@ -195,6 +197,11 @@ ['__doc__', '__file__', '__name__', 'spam']) def test_6(self): + # multiple runs during a test session fail + if "t6" in sys.modules: + warnings.warn("multiple runs of test_6 lead false errors", + RuntimeWarning) + return hier = [ ("t6", None), ("t6 __init__.py", @@ -221,6 +228,11 @@ self.run_code(s) def test_7(self): + # multiple runs during a test session fail + if "t7" in sys.modules: + warnings.warn("multiple runs of test_7 lead false errors", + RuntimeWarning) + return hier = [ ("t7.py", ""), ("t7", None), Index: Lib/test/test_tcl.py =================================================================== --- Lib/test/test_tcl.py (Revision 58923) +++ Lib/test/test_tcl.py (Arbeitskopie) @@ -2,13 +2,17 @@ import unittest import os +import sys from test import test_support from Tkinter import Tcl from _tkinter import TclError +from _tkinter import _get_load_status class TclTest(unittest.TestCase): + tk_loaded = False def setUp(self): + print(_get_load_status()) self.interp = Tcl() def testEval(self): @@ -120,16 +124,20 @@ if 'DISPLAY' not in os.environ: # skipping test of clean upgradeability return + if "TKLOADED" in os.environ: + # workaround for problem when this test runs multiple times in a + # row during refleak test. + # Calling Tk_Init again after a previous call failed might deadlock + return tcl = Tcl() self.assertRaises(TclError,tcl.winfo_geometry) tcl.loadtk() + os.environ["TKLOADED"] = "yes" self.assertEqual('1x1+0+0', tcl.winfo_geometry()) tcl.destroy() def testLoadTkFailure(self): - import os old_display = None - import sys if sys.platform.startswith(('win', 'darwin', 'cygwin')): return # no failure possible on windows? if 'DISPLAY' in os.environ: