| 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
|
|
|