[Python-Dev] [Python-checkins] cpython (2.7): PDB now will properly escape backslashes in the names of modules it executes.

Jason R. Coombs jaraco at jaraco.com
Tue Dec 6 23:34:07 CET 2011


Éric, These are all good suggestions. I'll make them at some point.

Thanks.

> -----Original Message-----
> From: python-dev-bounces+jaraco=jaraco.com at python.org [mailto:python-
> dev-bounces+jaraco=jaraco.com at python.org] On Behalf Of Éric Araujo
> Sent: Friday, 18 November, 2011 10:10
> To: python-dev at python.org
> Subject: Re: [Python-Dev] [Python-checkins] cpython (2.7): PDB now will
> properly escape backslashes in the names of modules it executes.
> 
> Hi Jason,
> 
> > http://hg.python.org/cpython/rev/f7dd5178f36a
> > branch:      2.7
> > user:        Jason R. Coombs <jaraco at jaraco.com>
> > date:        Thu Nov 17 18:03:24 2011 -0500
> > summary:
> >   PDB now will properly escape backslashes in the names of modules it
> > executes. Fixes #7750
> 
> > diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
> > +class Tester7750(unittest.TestCase):
> I think we have an unwritten rule that test class and method names should
> tell something about what they test.  (We do have things like TestWeirdBugs
> and test_12345, but I don’t think it’s a useful pattern to follow :)  Not a big
> deal anyway.
> 
> > +    # if the filename has something that resolves to a python
> > +    #  escape character (such as \t), it will fail
> > +    test_fn = '.\\test7750.py'
> > +
> > +    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,]
> > +        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")
> Why not check for assertIn(filename, stdout)?  (In other words, check for
> intended behavior rather than implementation of the erstwhile bug.)
> 
> BTW, I’ve just tested that giving a message argument to assertNotIn (the
> third argument), unittest still displays the other arguments to allow for easier
> debugging.  I didn’t know that, it’s cool!
> 
> > +    def tearDown(self):
> > +        if os.path.isfile(self.test_fn):
> > +            os.remove(self.test_fn)
> In my own tests, I’ve become fond of using “self.addCleanup(os.remove,
> filename)”: It’s shorter that a tearDown and is right there on the line that
> follows or precedes the file creation.
> 
> >  if __name__ == '__main__':
> >      test_main()
> > +    unittest.main()
> This looks strange.
> 
> Regards
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-
> dev/jaraco%40jaraco.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6662 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-dev/attachments/20111206/fb63e257/attachment.bin>


More information about the Python-Dev mailing list