New submission from Alexey Izbyshev <izbys...@ispras.ru>:

======================================================================
FAIL: test_resolve_common (test.test_pathlib.PathTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\workspace\cpython-3.8a\lib\test\test_pathlib.py", line 1538, in 
test_resolve_common
    self._check_resolve_relative(p, P(d, 'foo', 'in', 'spam'), False)
  File "C:\workspace\cpython-3.8a\lib\test\test_pathlib.py", line 1477, in 
_check_resolve
    self.assertEqual(q, expected)
AssertionError: 
WindowsPath('C:/Users/longusername/AppData/Local/Temp/tmpbenaiqaa-[
13 chars]pam') != WindowsPath('C:/Users/LONGUS~1/AppData/Local/Temp/tmpbenaiqaa-
dirD/foo/in/spam')

======================================================================

The problem is that the temporary directory path returned by tempfile.mkdtemp() 
contains the username in "short" (8.3) format, but Path.resolve() converts 
short names to long ones (thanks to ntpath._getfinalpathname()).

Since os.path.realpath() still doesn't resolve symlinks on Windows (#9949, 
#14094), and users of ntpath._getfinalpathname() have to deal with '\\?\' 
prefix, I think I'll just use Path.resolve() for the tmp dir path as a 
workaround.

----------
components: Tests, Windows
messages: 312545
nosy: izbyshev, paul.moore, pitrou, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: pathlib: test_resolve_common fails on Windows
type: behavior
versions: Python 3.6, Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32907>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to