diff options
| author | Serhiy Storchaka <storchaka@gmail.com> | 2014-02-19 21:27:37 (GMT) |
|---|---|---|
| committer | Serhiy Storchaka <storchaka@gmail.com> | 2014-02-19 21:27:37 (GMT) |
| commit | 2ac9d3110898a1cfc779dd436f05cd6ac231cbb3 (patch) | |
| tree | b62d200630b8675414e833a7f1200cd424cf7ebe /Lib/test/test_genericpath.py | |
| parent | c77d4ba85b4d2f08b4de094bc9d9104113772374 (diff) | |
| download | cpython-2ac9d3110898a1cfc779dd436f05cd6ac231cbb3.zip cpython-2ac9d3110898a1cfc779dd436f05cd6ac231cbb3.tar.gz cpython-2ac9d3110898a1cfc779dd436f05cd6ac231cbb3.tar.bz2 | |
Issue #6815: os.path.expandvars() now supports non-ASCII Unicode environment
variables names and values.
Diffstat (limited to 'Lib/test/test_genericpath.py')
| -rw-r--r-- | Lib/test/test_genericpath.py | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/Lib/test/test_genericpath.py b/Lib/test/test_genericpath.py index 3975b56..94380b1 100644 --- a/Lib/test/test_genericpath.py +++ b/Lib/test/test_genericpath.py @@ -199,13 +199,40 @@ class CommonTest(GenericTest): self.assertEqual(expandvars("$[foo]bar"), "$[foo]bar") self.assertEqual(expandvars("$bar bar"), "$bar bar") self.assertEqual(expandvars("$?bar"), "$?bar") - self.assertEqual(expandvars("${foo}bar"), "barbar") self.assertEqual(expandvars("$foo}bar"), "bar}bar") self.assertEqual(expandvars("${foo"), "${foo") self.assertEqual(expandvars("${{foo}}"), "baz1}") self.assertEqual(expandvars("$foo$foo"), "barbar") self.assertEqual(expandvars("$bar$bar"), "$bar$bar") + @unittest.skipUnless(test_support.FS_NONASCII, 'need test_support.FS_NONASCII') + def test_expandvars_nonascii(self): + if self.pathmodule.__name__ == 'macpath': + self.skipTest('macpath.expandvars is a stub') + expandvars = self.pathmodule.expandvars + def check(value, expected): + self.assertEqual(expandvars(value), expected) + encoding = sys.getfilesystemencoding() + with test_support.EnvironmentVarGuard() as env: + env.clear() + unonascii = test_support.FS_NONASCII + snonascii = unonascii.encode(encoding) + env['spam'] = snonascii + env[snonascii] = 'ham' + snonascii + check(snonascii, snonascii) + check('$spam bar', '%s bar' % snonascii) + check('${spam}bar', '%sbar' % snonascii) + check('${%s}bar' % snonascii, 'ham%sbar' % snonascii) + check('$bar%s bar' % snonascii, '$bar%s bar' % snonascii) + check('$spam}bar', '%s}bar' % snonascii) + + check(unonascii, unonascii) + check(u'$spam bar', u'%s bar' % unonascii) + check(u'${spam}bar', u'%sbar' % unonascii) + check(u'${%s}bar' % unonascii, u'ham%sbar' % unonascii) + check(u'$bar%s bar' % unonascii, u'$bar%s bar' % unonascii) + check(u'$spam}bar', u'%s}bar' % unonascii) + def test_abspath(self): self.assertIn("foo", self.pathmodule.abspath("foo")) |
