]> granicus.if.org Git - python/commitdiff
Backport of import tests for bug http://bugs.python.org/issue1293 and bug http:/...
authorChristian Heimes <christian@cheimes.de>
Thu, 1 Nov 2007 19:48:10 +0000 (19:48 +0000)
committerChristian Heimes <christian@cheimes.de>
Thu, 1 Nov 2007 19:48:10 +0000 (19:48 +0000)
Lib/test/test_import.py

index a805534cefd3d185f1d14b21f92c03df628f9fc8..71f59767306c77a0cfc1c352888b7d97ad2fc3c4 100644 (file)
@@ -1,11 +1,13 @@
-from test.test_support import TESTFN, run_unittest, catch_warning
+from test.test_support import TESTFN, run_unittest, catch_warning
 
 import unittest
 import os
 import random
+import shutil
 import sys
 import py_compile
 import warnings
+from test.test_support import unlink, TESTFN, unload
 
 
 def remove_files(name):
@@ -221,8 +223,47 @@ class ImportTest(unittest.TestCase):
             warnings.simplefilter('error', ImportWarning)
             self.assertRaises(ImportWarning, __import__, "site-packages")
 
+class UnicodePathsTests(unittest.TestCase):
+    SAMPLES = ('test', 'testäöüß', 'testéè', 'test°³²')
+    path = TESTFN
+
+    def setUp(self):
+        os.mkdir(self.path)
+        self.syspath = sys.path[:]
+
+    def tearDown(self):
+        shutil.rmtree(self.path)
+        sys.path = self.syspath
+
+    def test_sys_path(self):
+        for i, subpath in enumerate(self.SAMPLES):
+            path = os.path.join(self.path, subpath)
+            os.mkdir(path)
+            self.failUnless(os.path.exists(path), os.listdir(self.path))
+            f = open(os.path.join(path, 'testimport%i.py' % i), 'w')
+            f.write("testdata = 'unicode path %i'\n" % i)
+            f.close()
+            sys.path.append(path)
+            try:
+                mod = __import__("testimport%i" % i)
+            except ImportError:
+                print >>sys.stderr, path
+                raise
+            self.assertEqual(mod.testdata, 'unicode path %i' % i)
+            unload("testimport%i" % i)
+
+    # http://bugs.python.org/issue1293
+    def test_trailing_slash(self):
+        f = open(os.path.join(self.path, 'test_trailing_slash.py'), 'w')
+        f.write("testdata = 'test_trailing_slash'")
+        f.close()
+        sys.path.append(self.path+'/')
+        mod = __import__("test_trailing_slash")
+        self.assertEqual(mod.testdata, 'test_trailing_slash')
+        unload("test_trailing_slash")
+
 def test_main(verbose=None):
-    run_unittest(ImportTest)
+    run_unittest(ImportTest, UnicodePathsTests)
 
 if __name__ == '__main__':
     test_main()