From f6365e01076d3b9ab7de171c07622f21710206d5 Mon Sep 17 00:00:00 2001
From: Barry Warsaw <barry@python.org>
Date: Thu, 16 Aug 2001 20:42:38 +0000
Subject: Added a test for module repr truncation when the package name is
 really long.  Closes SF bug #437984.

---
 Lib/test/test_import.py | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

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)
-- 
cgit v0.12

