Closed
Description
This is an initial report of an issue I observed when updating xdoctest to support pytest 8.0.
What I found is that when I ran a test effectivly using the invocation:
C:\hostedtoolcache\windows\Python\3.12.1\x64\python.exe -m pytest C:\Users\RUNNER~1\AppData\Local\Temp\tmpcttcs8zz
Pytest would collect 0 tests even though there was a python file with a test in that directory.
By adding this code to convert the short path to a long path, the xdoctest failure went away, and things seem to be working now.
dpath = tempfile.mkdtemp()
# https://stackoverflow.com/questions/11420689/how-to-get-long-file-system-path-from-python-on-windows
from ctypes import create_unicode_buffer, windll
BUFFER_SIZE = 500
buffer = create_unicode_buffer(BUFFER_SIZE)
get_long_path_name = windll.kernel32.GetLongPathNameW
get_long_path_name(dpath, buffer, BUFFER_SIZE)
dpath = buffer.value
I've documented more of the problem here Erotemic/xdoctest#151
I don't have a MWE as I don't have a windows machine, but I'm reasonably confident that something in pytest 8 broke short path recognition on windows. I'll leave it to other devs to test further.