summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2001-08-16 20:42:38 (GMT)
committerBarry Warsaw <barry@python.org>2001-08-16 20:42:38 (GMT)
commitf6365e01076d3b9ab7de171c07622f21710206d5 (patch)
treef55ba0b25a770e3e6dac29a2f203411e0f3adf9d
parent501c7c7d0eb8c8fb1a9384092efed0141052f324 (diff)
downloadcpython-f6365e01076d3b9ab7de171c07622f21710206d5.zip
cpython-f6365e01076d3b9ab7de171c07622f21710206d5.tar.gz
cpython-f6365e01076d3b9ab7de171c07622f21710206d5.tar.bz2
Added a test for module repr truncation when the package name is
really long. Closes SF bug #437984.
-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)