|
import pytest |
|
import textwrap |
|
|
|
from . import util |
|
from numpy.testing import IS_PYPY |
|
|
|
|
|
@pytest.mark.slow |
|
class TestModuleFilterPublicEntities(util.F2PyTest): |
|
sources = [ |
|
util.getpath( |
|
"tests", "src", "modules", "gh26920", |
|
"two_mods_with_one_public_routine.f90" |
|
) |
|
] |
|
|
|
only = ["mod1_func1", ] |
|
|
|
def test_gh26920(self): |
|
|
|
pass |
|
|
|
|
|
@pytest.mark.slow |
|
class TestModuleWithoutPublicEntities(util.F2PyTest): |
|
sources = [ |
|
util.getpath( |
|
"tests", "src", "modules", "gh26920", |
|
"two_mods_with_no_public_entities.f90" |
|
) |
|
] |
|
only = ["mod1_func1", ] |
|
|
|
def test_gh26920(self): |
|
|
|
pass |
|
|
|
|
|
@pytest.mark.slow |
|
class TestModuleDocString(util.F2PyTest): |
|
sources = [util.getpath("tests", "src", "modules", "module_data_docstring.f90")] |
|
|
|
@pytest.mark.xfail(IS_PYPY, reason="PyPy cannot modify tp_doc after PyType_Ready") |
|
def test_module_docstring(self): |
|
assert self.module.mod.__doc__ == textwrap.dedent( |
|
"""\ |
|
i : 'i'-scalar |
|
x : 'i'-array(4) |
|
a : 'f'-array(2,3) |
|
b : 'f'-array(-1,-1), not allocated\x00 |
|
foo()\n |
|
Wrapper for ``foo``.\n\n""" |
|
) |
|
|
|
|
|
@pytest.mark.slow |
|
class TestModuleAndSubroutine(util.F2PyTest): |
|
module_name = "example" |
|
sources = [ |
|
util.getpath("tests", "src", "modules", "gh25337", "data.f90"), |
|
util.getpath("tests", "src", "modules", "gh25337", "use_data.f90"), |
|
] |
|
|
|
def test_gh25337(self): |
|
self.module.data.set_shift(3) |
|
assert "data" in dir(self.module) |
|
|
|
|
|
@pytest.mark.slow |
|
class TestUsedModule(util.F2PyTest): |
|
module_name = "fmath" |
|
sources = [ |
|
util.getpath("tests", "src", "modules", "use_modules.f90"), |
|
] |
|
|
|
def test_gh25867(self): |
|
compiled_mods = [x for x in dir(self.module) if "__" not in x] |
|
assert "useops" in compiled_mods |
|
assert self.module.useops.sum_and_double(3, 7) == 20 |
|
assert "mathops" in compiled_mods |
|
assert self.module.mathops.add(3, 7) == 10 |
|
|