[Python-Dev] [Python-checkins] cpython (3.2): #11873: fix test regex so it covers windows os.sep as well.

Victor Stinner victor.stinner at haypocalc.com
Fri Jul 1 20:46:10 CEST 2011


Le vendredi 01 juillet 2011 à 17:54 +0200, r.david.murray a écrit :
> http://hg.python.org/cpython/rev/f8ece8c93918
> changeset:   71119:f8ece8c93918
> branch:      3.2
> parent:      71117:3f30cfe51315
> user:        R David Murray <rdmurray at bitdance.com>
> date:        Fri Jul 01 11:51:50 2011 -0400
> summary:
>   #11873: fix test regex so it covers windows os.sep as well.
> 
> files:
>   Lib/test/test_compileall.py |  2 +-
>   1 files changed, 1 insertions(+), 1 deletions(-)
> 
> 
> diff --git a/Lib/test/test_compileall.py b/Lib/test/test_compileall.py
> --- a/Lib/test/test_compileall.py
> +++ b/Lib/test/test_compileall.py
> @@ -248,7 +248,7 @@
>          self.assertEqual(b'', quiet)
>  
>      def test_regexp(self):
> -        self.assertRunOK('-q', '-x', 'ba[^\/]*$', self.pkgdir)
> +        self.assertRunOK('-q', '-x', r'ba[^\/]*$', self.pkgdir)
>          self.assertNotCompiled(self.barfn)
>          self.assertCompiled(self.initfn)

I'm not sure that your regex is correct. You may have to use a double
slash or it is interpreted by the regex :-/

>>> import re
>>> re.match(r'ba[^\/]*$', 'babar')
<_sre.SRE_Match object at 0x7f420559a7e8>
>>> re.match(r'ba[^\/]*$', 'babar/')
>>> re.match(r'ba[^\/]*$', 'babar\\a')
<_sre.SRE_Match object at 0x7f420559a850>

Correct regex:

>>> re.match(r'ba[^\\/]*$', 'baba\\')
>>> re.match(r'ba[^\\/]*$', 'baba/')

Victor



More information about the Python-Dev mailing list