Skip to content

Commit

Permalink
Fix depfile tests on Windows.
Browse files Browse the repository at this point in the history
  • Loading branch information
scoder committed Feb 16, 2022
1 parent 5ba24b4 commit f61e759
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 19 deletions.
6 changes: 3 additions & 3 deletions tests/build/depfile.srctree
@@ -1,5 +1,7 @@
"""
PYTHON -m Cython.Build.Cythonize -M foo.pyx
PYTHON check.py
"""

######## foo.pyx ########

Expand All @@ -25,9 +27,7 @@ cdef inline void empty():

######## check.py ########

import os

with open("foo.c.dep", "r") as f:
contents = f.read().replace("\n", " ").replace("\\", "")
contents = f.read().replace("\\\n", " ").replace("\n", " ")

assert sorted(contents.split()) == ['bar.pxd', 'baz.pxi', 'foo.c:', 'foo.pyx'], contents
25 changes: 16 additions & 9 deletions tests/build/depfile_numpy.srctree
@@ -1,7 +1,9 @@
# tag: numpy

"""
PYTHON -m Cython.Build.Cythonize -M dep_np.pyx
PYTHON check_np.py
"""

######## dep_np.pyx ########

Expand All @@ -12,14 +14,13 @@ np.import_array()

######## check_np.py ########

import os
import re
import os.path

import numpy as np
import Cython

with open("dep_np.c.dep", "r") as f:
contents = f.read().replace("\n", " ").replace("\\", "")
contents = f.read().replace('\\\n', ' ').replace('\n', ' ')

contents = contents.split()

Expand All @@ -29,21 +30,27 @@ contents = [fname.replace(cy_prefix, "cy_prefix") for fname in contents]
np_prefix, _ = os.path.split(np.__file__)
contents = [fname.replace(np_prefix, "np_prefix") for fname in contents]

expected = ['cy_prefix/Includes/cpython/buffer.pxd',
contents = [path.split(os.sep) for path in contents]
contents.sort()

expected = [path.split('/') for path in [
'cy_prefix/Includes/cpython/buffer.pxd',
'cy_prefix/Includes/cpython/mem.pxd',
'cy_prefix/Includes/cpython/object.pxd',
'cy_prefix/Includes/cpython/ref.pxd',
'cy_prefix/Includes/cpython/type.pxd',
'cy_prefix/Includes/libc/stdio.pxd',
'cy_prefix/Includes/libc/string.pxd',
'dep_np.c:',
'dep_np.pyx',]
'dep_np.pyx',
]]

# Also account for legacy numpy versions, which do not ship
# `__init__.pxd` hence the fallback is used:
if 'cy_prefix/Includes/numpy/__init__.pxd' in contents:
expected.append('cy_prefix/Includes/numpy/__init__.pxd')
if ['cy_prefix', 'Includes', 'numpy', '__init__.pxd'] in contents:
expected.append(['cy_prefix', 'Includes', 'numpy', '__init__.pxd'])
else:
expected.append('np_prefix/__init__.pxd')
expected.append(['np_prefix', '__init__.pxd'])

assert sorted(contents) == sorted(expected), sorted(contents)
expected.sort()
assert contents == expected, contents
13 changes: 6 additions & 7 deletions tests/build/depfile_package.srctree
@@ -1,24 +1,24 @@
'''
"""
PYTHON -m Cython.Build.Cythonize -i pkg --depfile
PYTHON package_test.py
'''
"""

######## package_test.py ########

import os
import os.path

with open("pkg/test.c.dep", "r") as f:
contents = f.read().replace("\n", " ").replace("\\", "")
contents = f.read().replace("\\\n", " ").replace("\\\n", " ")

assert sorted(contents.split()) == sorted(['test.c:', 'sub/incl.pxi', 'test.pxd', 'test.pyx']), contents
assert sorted(contents.split()) == sorted(['test.c:', os.path.join('sub', 'incl.pxi'), 'test.pxd', 'test.pyx']), contents


with open("pkg/sub/test.c.dep", "r") as f:
contents = f.read().replace("\n", " ").replace("\\", "")

contents = [os.path.relpath(entry, '.')
if os.path.isabs(entry) else entry for entry in contents.split()]
assert sorted(contents) == sorted(['test.c:', 'incl.pxi', 'test.pyx', '../test.pxd']), contents
assert sorted(contents) == sorted(['test.c:', 'incl.pxi', 'test.pyx', os.path.join('..', 'test.pxd')]), contents


######## pkg/__init__.py ########
Expand Down Expand Up @@ -55,4 +55,3 @@ TEST = 'pkg.sub.test'
######## pkg/sub/incl.pxi ########

pass

0 comments on commit f61e759

Please sign in to comment.