From f6365e01076d3b9ab7de171c07622f21710206d5 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Thu, 16 Aug 2001 20:42:38 +0000 Subject: [PATCH] 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 b2e3fb6d3d4..e2fbc5c022c 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` <> \ + "" % 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)