From 7d016ed3bf7632a0b84cdec21c4b96b224b4e16a Mon Sep 17 00:00:00 2001 From: Viet Dung Nguyen <60036798+rxng8@users.noreply.github.com> Date: Thu, 27 Jun 2024 15:50:54 +0200 Subject: [PATCH] Add unit testing and example (#29) * push initial unit testing workflow * config example unit testing --- .github/workflows/python-package-conda.yml | 34 ++++++++++++++++++++++ pytest.ini | 6 ++++ tests/compartment_test.py | 22 ++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 .github/workflows/python-package-conda.yml create mode 100644 pytest.ini create mode 100644 tests/compartment_test.py diff --git a/.github/workflows/python-package-conda.yml b/.github/workflows/python-package-conda.yml new file mode 100644 index 0000000..404cbae --- /dev/null +++ b/.github/workflows/python-package-conda.yml @@ -0,0 +1,34 @@ +name: Python Package using Conda + +on: [push] + +jobs: + build-linux: + runs-on: ubuntu-latest + strategy: + max-parallel: 5 + + steps: + - uses: actions/checkout@v4 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: '3.10' + - name: Add conda to system path + run: | + # $CONDA is an environment variable pointing to the root of the miniconda directory + echo $CONDA/bin >> $GITHUB_PATH + - name: Install current library and dependencies + run: | + pip install -e . + # - name: Lint with flake8 + # run: | + # conda install flake8 + # # stop the build if there are Python syntax errors or undefined names + # flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + # flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + conda install pytest + pytest diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..5f7e5da --- /dev/null +++ b/pytest.ini @@ -0,0 +1,6 @@ +# content of pytest.ini +[pytest] +python_files = *_test.py +python_classes = *Test +python_functions = test_* *_test +testpaths = tests \ No newline at end of file diff --git a/tests/compartment_test.py b/tests/compartment_test.py new file mode 100644 index 0000000..85bc3b9 --- /dev/null +++ b/tests/compartment_test.py @@ -0,0 +1,22 @@ + +import pathlib +import sys + +# NOTE: VN: Since we have installed using `pip install -e .` in the workflow file, we +# might not need to manually add to the path +sys.path.append(str(pathlib.Path(__file__).parent.parent)) + +# import ngcsimlib + +class CompartmentTest: + + def test_import(self): + success = False + try: + from ngcsimlib.compartment import Compartment + success = True + except: + success = False + assert success, "Import failed!" + +