Blame tests/run/pxd_argument_names.srctree

Packit Service 99d393
# mode: run
Packit Service 99d393
# ticket: gh1888
Packit Service 99d393
Packit Service 99d393
PYTHON setup.py build_ext --inplace
Packit Service 99d393
PYTHON -c "import a; a.test()"
Packit Service 99d393
Packit Service 99d393
######## setup.py ########
Packit Service 99d393
Packit Service 99d393
from Cython.Build.Dependencies import cythonize
Packit Service 99d393
Packit Service 99d393
from distutils.core import setup
Packit Service 99d393
Packit Service 99d393
setup(
Packit Service 99d393
    ext_modules=cythonize("a.pyx"),
Packit Service 99d393
)
Packit Service 99d393
Packit Service 99d393
######## a.pxd ########
Packit Service 99d393
Packit Service 99d393
cdef int do_stuff(int foo) except -1
Packit Service 99d393
Packit Service 99d393
######## a.pyx ########
Packit Service 99d393
Packit Service 99d393
cdef int do_stuff(int bar) except -1:
Packit Service 99d393
    if bar == 0:
Packit Service 99d393
        raise ValueError()
Packit Service 99d393
    return bar
Packit Service 99d393
Packit Service 99d393
Packit Service 99d393
cdef call_do_stuff(int x):
Packit Service 99d393
    # The keyword argument name is surprising, but actually correct.
Packit Service 99d393
    # The caller signature is defined by the .pxd file, not the implementation.
Packit Service 99d393
    return do_stuff(foo=x)
Packit Service 99d393
Packit Service 99d393
Packit Service 99d393
def test():
Packit Service 99d393
    assert do_stuff(1) == 1
Packit Service 99d393
    assert do_stuff(foo=1) == 1
Packit Service 99d393
    assert call_do_stuff(1) == 1
Packit Service 99d393
Packit Service 99d393
    try:
Packit Service 99d393
        do_stuff(0)
Packit Service 99d393
    except ValueError:
Packit Service 99d393
        pass
Packit Service 99d393
    else:
Packit Service 99d393
        assert False, "exception not raised"
Packit Service 99d393
Packit Service 99d393
    try:
Packit Service 99d393
        call_do_stuff(0)
Packit Service 99d393
    except ValueError:
Packit Service 99d393
        pass
Packit Service 99d393
    else:
Packit Service 99d393
        assert False, "exception not raised"