[Python-checkins] cpython (2.7): Implemented suggested improvements for pdb test by Éric Araujo

jason.coombs python-checkins at python.org
Fri Dec 9 04:25:19 CET 2011


http://hg.python.org/cpython/rev/70337a6d5dde
changeset:   73901:70337a6d5dde
branch:      2.7
parent:      73892:9d329adbbb01
user:        Jason R. Coombs <jaraco at jaraco.com>
date:        Thu Dec 08 22:14:56 2011 -0500
summary:
  Implemented suggested improvements for pdb test by Éric Araujo

files:
  Lib/test/test_pdb.py |  35 ++++++++++++++++---------------
  1 files changed, 18 insertions(+), 17 deletions(-)


diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -280,35 +280,36 @@
     4
     """
 
-class Tester7750(unittest.TestCase):
-    # if the filename has something that resolves to a python
-    #  escape character (such as \t), it will fail
-    test_fn = '.\\test7750.py'
+class ModuleInitTester(unittest.TestCase):
 
-    msg = "issue7750 only applies when os.sep is a backslash"
-    @unittest.skipUnless(os.path.sep == '\\', msg)
-    def test_issue7750(self):
-        with open(self.test_fn, 'w') as f:
-            f.write('print("hello world")')
-        cmd = [sys.executable, '-m', 'pdb', self.test_fn,]
+    def test_filename_correct(self):
+        """
+        In issue 7750, it was found that if the filename has a sequence that
+        resolves to an escape character in a Python string (such as \t), it
+        will be treated as the escaped character.
+        """
+        # the test_fn must contain something like \t
+        # on Windows, this will create 'test_mod.py' in the current directory.
+        # on Unix, this will create '.\test_mod.py' in the current directory.
+        test_fn = '.\\test_mod.py'
+        code = 'print("testing pdb")'
+        with open(test_fn, 'w') as f:
+            f.write(code)
+        self.addCleanup(os.remove, test_fn)
+        cmd = [sys.executable, '-m', 'pdb', test_fn,]
         proc = subprocess.Popen(cmd,
             stdout=subprocess.PIPE,
             stdin=subprocess.PIPE,
             stderr=subprocess.STDOUT,
             )
         stdout, stderr = proc.communicate('quit\n')
-        self.assertNotIn('IOError', stdout, "pdb munged the filename")
-
-    def tearDown(self):
-        if os.path.isfile(self.test_fn):
-            os.remove(self.test_fn)
+        self.assertIn(code, stdout, "pdb munged the filename")
 
 
 def test_main():
     from test import test_pdb
     test_support.run_doctest(test_pdb, verbosity=True)
-
+    test_support.run_unittest(ModuleInitTester)
 
 if __name__ == '__main__':
     test_main()
-    unittest.main()

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list