summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_import.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py
index b2e3fb6..e2fbc5c 100644
--- a/Lib/test/test_import.py
+++ b/Lib/test/test_import.py
@@ -69,3 +69,38 @@ try:
test_with_extension(ext)
finally:
del sys.path[0]
+
+def touch(path):
+ fp = open(path, 'w')
+ fp.close()
+
+# test imports of packages with really long names, but specifically that their
+# reprs include the full name
+try:
+ longname = 'areallylongpackageandmodulenametotestreprtruncation'
+ os.mkdir(longname)
+ touch(os.path.join(longname, '__init__.py'))
+ os.mkdir(os.path.join(longname, longname))
+ touch(os.path.join(longname, longname, '__init__.py'))
+ touch(os.path.join(longname, longname, longname + '.py'))
+ sys.path.insert(0, os.getcwd())
+ from areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation import areallylongpackageandmodulenametotestreprtruncation
+ if `areallylongpackageandmodulenametotestreprtruncation` <> \
+ "<module 'areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation' from '%s'>" % areallylongpackageandmodulenametotestreprtruncation.__file__:
+ raise TestFailed, 'module name truncation'
+finally:
+ # Delete recursively
+ del sys.path[0]
+ def zap(actions, dirname, names):
+ for name in names:
+ actions.append(os.path.join(dirname, name))
+ actions = []
+ os.path.walk(longname, zap, actions)
+ actions.append(longname)
+ actions.sort()
+ actions.reverse()
+ for p in actions:
+ if os.path.isdir(p):
+ os.rmdir(p)
+ else:
+ os.remove(p)