summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_frozen.py60
-rw-r--r--Python/frozen.c19
-rw-r--r--Tools/freeze/flag.py1
3 files changed, 42 insertions, 38 deletions
diff --git a/Lib/test/test_frozen.py b/Lib/test/test_frozen.py
index 3c9fab3..2de2535 100644
--- a/Lib/test/test_frozen.py
+++ b/Lib/test/test_frozen.py
@@ -4,37 +4,41 @@ from __future__ import with_statement
from test.test_support import captured_stdout, run_unittest
import unittest
import sys, os
+import warnings
class FrozenTests(unittest.TestCase):
def test_frozen(self):
-
- 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))
-
- try:
- import __phello__.spam
- except ImportError as x:
- self.fail("import __phello__.spam failed:" + str(x))
-
- 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')
-
+ 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)
+
+ 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__.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__.foo
+ except ImportError:
+ pass
+ else:
+ self.fail("import __phello__.foo should have failed")
def test_main():
run_unittest(FrozenTests)
diff --git a/Python/frozen.c b/Python/frozen.c
index ee06c35..1e40d7d 100644
--- a/Python/frozen.c
+++ b/Python/frozen.c
@@ -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__)
diff --git a/Tools/freeze/flag.py b/Tools/freeze/flag.py
new file mode 100644
index 0000000..ea6d633
--- /dev/null
+++ b/Tools/freeze/flag.py
@@ -0,0 +1 @@
+initialized = True