From 9f7f72af1f4c595b4c883b9e30e5486c41fab8af Mon Sep 17 00:00:00 2001 From: Rocco Meli Date: Wed, 17 Nov 2021 14:35:14 +0000 Subject: [PATCH 1/2] move tests outside of python package --- pytest.ini | 2 +- {gnina/tests => tests}/__init__.py | 0 {gnina/tests => tests}/conftest.py | 29 +++++++++++++++++++++ {gnina => tests}/data/README.md | 0 {gnina/data/test => tests/data/mols}/l1.sdf | 0 {gnina/data/test => tests/data/mols}/l2.sdf | 0 {gnina/data/test => tests/data/mols}/r1.pdb | 0 {gnina/data/test => tests/data/mols}/r2.pdb | 0 {gnina => tests}/data/test.types | 0 {gnina/tests => tests}/test_dataloaders.py | 21 --------------- {gnina/tests => tests}/test_import.py | 0 {gnina/tests => tests}/test_inference.py | 21 --------------- {gnina/tests => tests}/test_losses.py | 0 {gnina/tests => tests}/test_models.py | 0 {gnina/tests => tests}/test_setup.py | 15 ----------- {gnina/tests => tests}/test_training.py | 15 ----------- 16 files changed, 30 insertions(+), 73 deletions(-) rename {gnina/tests => tests}/__init__.py (100%) rename {gnina/tests => tests}/conftest.py (60%) rename {gnina => tests}/data/README.md (100%) rename {gnina/data/test => tests/data/mols}/l1.sdf (100%) rename {gnina/data/test => tests/data/mols}/l2.sdf (100%) rename {gnina/data/test => tests/data/mols}/r1.pdb (100%) rename {gnina/data/test => tests/data/mols}/r2.pdb (100%) rename {gnina => tests}/data/test.types (100%) rename {gnina/tests => tests}/test_dataloaders.py (95%) rename {gnina/tests => tests}/test_import.py (100%) rename {gnina/tests => tests}/test_inference.py (84%) rename {gnina/tests => tests}/test_losses.py (100%) rename {gnina/tests => tests}/test_models.py (100%) rename {gnina/tests => tests}/test_setup.py (91%) rename {gnina/tests => tests}/test_training.py (91%) diff --git a/pytest.ini b/pytest.ini index 49419f9..6c64e06 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,4 +1,4 @@ [pytest] minversion = 6.0 testpaths = - gnina/tests/ + tests/ diff --git a/gnina/tests/__init__.py b/tests/__init__.py similarity index 100% rename from gnina/tests/__init__.py rename to tests/__init__.py diff --git a/gnina/tests/conftest.py b/tests/conftest.py similarity index 60% rename from gnina/tests/conftest.py rename to tests/conftest.py index 3a2dd57..f7cf9e1 100644 --- a/gnina/tests/conftest.py +++ b/tests/conftest.py @@ -1,3 +1,5 @@ +import os + import molgrid import pytest import torch @@ -35,3 +37,30 @@ def device(pytestconfig): device = torch.device("cpu") return device + + +@pytest.fixture(scope="session") +def trainfile() -> str: + """ + Path to small training file. + """ + path = os.path.dirname(__file__) + return os.path.join(path, "data", "test.types") + + +@pytest.fixture +def testfile() -> str: + """ + Path to small test file. + """ + path = os.path.dirname(__file__) + return os.path.join(path, "data", "test.types") + + +@pytest.fixture(scope="session") +def dataroot() -> str: + """ + Path to test directory. + """ + path = os.path.dirname(__file__) + return os.path.join(path, "data", "mols") diff --git a/gnina/data/README.md b/tests/data/README.md similarity index 100% rename from gnina/data/README.md rename to tests/data/README.md diff --git a/gnina/data/test/l1.sdf b/tests/data/mols/l1.sdf similarity index 100% rename from gnina/data/test/l1.sdf rename to tests/data/mols/l1.sdf diff --git a/gnina/data/test/l2.sdf b/tests/data/mols/l2.sdf similarity index 100% rename from gnina/data/test/l2.sdf rename to tests/data/mols/l2.sdf diff --git a/gnina/data/test/r1.pdb b/tests/data/mols/r1.pdb similarity index 100% rename from gnina/data/test/r1.pdb rename to tests/data/mols/r1.pdb diff --git a/gnina/data/test/r2.pdb b/tests/data/mols/r2.pdb similarity index 100% rename from gnina/data/test/r2.pdb rename to tests/data/mols/r2.pdb diff --git a/gnina/data/test.types b/tests/data/test.types similarity index 100% rename from gnina/data/test.types rename to tests/data/test.types diff --git a/gnina/tests/test_dataloaders.py b/tests/test_dataloaders.py similarity index 95% rename from gnina/tests/test_dataloaders.py rename to tests/test_dataloaders.py index 0f77a31..7a373a9 100644 --- a/gnina/tests/test_dataloaders.py +++ b/tests/test_dataloaders.py @@ -1,6 +1,3 @@ -import os -import sys - import pytest import torch @@ -8,24 +5,6 @@ from gnina.dataloaders import GriddedExamplesLoader -@pytest.fixture -def trainfile() -> str: - """ - Path to small training file. - """ - gnina_path = os.path.dirname(sys.modules["gnina"].__file__) - return os.path.join(gnina_path, "data", "test.types") - - -@pytest.fixture -def dataroot() -> str: - """ - Path to test directory. - """ - gnina_path = os.path.dirname(sys.modules["gnina"].__file__) - return os.path.join(gnina_path, "data", "test") - - @pytest.mark.parametrize("iteration_scheme", ["small", "large"]) def test_GriddedExamplesLoader(trainfile, dataroot, device, iteration_scheme): # Do not shuffle examples randomly when loading the batch diff --git a/gnina/tests/test_import.py b/tests/test_import.py similarity index 100% rename from gnina/tests/test_import.py rename to tests/test_import.py diff --git a/gnina/tests/test_inference.py b/tests/test_inference.py similarity index 84% rename from gnina/tests/test_inference.py rename to tests/test_inference.py index ad98120..8eeb481 100644 --- a/gnina/tests/test_inference.py +++ b/tests/test_inference.py @@ -1,29 +1,8 @@ import os -import sys - -import pytest from gnina import inference, training -@pytest.fixture -def trainfile() -> str: - gnina_path = os.path.dirname(sys.modules["gnina"].__file__) - return os.path.join(gnina_path, "data", "test.types") - - -@pytest.fixture -def testfile() -> str: - gnina_path = os.path.dirname(sys.modules["gnina"].__file__) - return os.path.join(gnina_path, "data", "test.types") - - -@pytest.fixture -def dataroot() -> str: - gnina_path = os.path.dirname(sys.modules["gnina"].__file__) - return os.path.join(gnina_path, "data", "test") - - def test_inference(trainfile, testfile, dataroot, tmpdir, device): epochs = 1 diff --git a/gnina/tests/test_losses.py b/tests/test_losses.py similarity index 100% rename from gnina/tests/test_losses.py rename to tests/test_losses.py diff --git a/gnina/tests/test_models.py b/tests/test_models.py similarity index 100% rename from gnina/tests/test_models.py rename to tests/test_models.py diff --git a/gnina/tests/test_setup.py b/tests/test_setup.py similarity index 91% rename from gnina/tests/test_setup.py rename to tests/test_setup.py index 1803d41..ee5b83a 100644 --- a/gnina/tests/test_setup.py +++ b/tests/test_setup.py @@ -1,24 +1,9 @@ -import os -import sys - import pytest import torch from gnina import setup, training -@pytest.fixture -def trainfile() -> str: - gnina_path = os.path.dirname(sys.modules["gnina"].__file__) - return os.path.join(gnina_path, "data", "test.types") - - -@pytest.fixture -def dataroot() -> str: - gnina_path = os.path.dirname(sys.modules["gnina"].__file__) - return os.path.join(gnina_path, "data", "test") - - def test_setup_example_provider_default(trainfile, dataroot, device): # Do not shuffle examples randomly when loading the batch # This ensures reproducibility diff --git a/gnina/tests/test_training.py b/tests/test_training.py similarity index 91% rename from gnina/tests/test_training.py rename to tests/test_training.py index 13a0e15..62552b9 100644 --- a/gnina/tests/test_training.py +++ b/tests/test_training.py @@ -1,23 +1,8 @@ -import os -import sys - import pytest from gnina import training -@pytest.fixture -def trainfile() -> str: - gnina_path = os.path.dirname(sys.modules["gnina"].__file__) - return os.path.join(gnina_path, "data", "test.types") - - -@pytest.fixture -def dataroot() -> str: - gnina_path = os.path.dirname(sys.modules["gnina"].__file__) - return os.path.join(gnina_path, "data", "test") - - def test_options_default(trainfile): args = training.options([trainfile]) From f4812685a2d2c90b81b2506cf38c443e31cad055 Mon Sep 17 00:00:00 2001 From: Rocco Meli Date: Wed, 17 Nov 2021 14:36:15 +0000 Subject: [PATCH 2/2] update CI to run tests from new location --- .github/workflows/CI.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index cc755cd..4efd444 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -66,7 +66,7 @@ jobs: shell: bash -l {0} run: | - pytest -v --cov=gnina --cov-report=xml --color=yes gnina/tests/ --nogpu + pytest -v --cov=gnina --cov-report=xml --color=yes tests/ --nogpu - name: CodeCov uses: codecov/codecov-action@v1