diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index c564208e8..4222e1e8f 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -22,22 +22,37 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python + id: setup_python uses: actions/setup-python@v4 with: python-version: '3.10' + - name: Cache virtual environment + uses: actions/cache@v3 + with: + # TODO: we are hashing requirements.txt but that doesn't contain all + # our dependencies pinned. + key: venv-${{ runner.os }}-${{ steps.setup_python.outputs.python-version}}-${{ hashFiles('requirements.txt') }} + path: .venv - name: Install system packages run: sudo apt-get install -y portaudio19-dev - - name: Install basic dependencies + - name: Setup virtual environment run: | + python -m venv .venv + - name: Install basic Python dependencies + run: | + source .venv/bin/activate python -m pip install --upgrade pip pip install -r requirements.txt - name: Build project run: | + source .venv/bin/activate python -m build - - name: Install project and other dependencies + - name: Install project and other Python dependencies run: | + source .venv/bin/activate pip install --editable . - name: Test with pytest run: | + source .venv/bin/activate pip install pytest - pytest --doctest-modules --ignore-glob="*to_be_updated*" src/dailyai + pytest --doctest-modules --ignore-glob="*to_be_updated*" src tests diff --git a/README.md b/README.md index c8dff3252..531d2412b 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,20 @@ If you want to use this package from another directory, you can run: pip install path_to_this_repo ``` +### Running tests + +To run tests you need to install `pytest`: + +``` +pip install pytest +``` + +Then, from the root directory, run: + +``` +pytest --doctest-modules --ignore-glob="*to_be_updated*" src tests +``` + ## Setting up your editor This project uses strict [PEP 8](https://peps.python.org/pep-0008/) formatting. @@ -116,13 +130,7 @@ You can use [use-package](https://github.com/jwiegley/use-package) to install [p (setq py-autopep8-options '("-a" "-a"))) ``` -If you don't have it already, you also need to install [autopep8](https://pypi.org/project/autopep8/): - -``` -pip install autopep8 -``` - -If use install `autopep8` in the `venv` environment described before, you can use [pyvenv-auto](https://github.com/ryotaro612/pyvenv-auto) to automatically load the virtual environment inside Emacs. +`autopep8` was installed in the `venv` environment described before, so you should be able to use [pyvenv-auto](https://github.com/ryotaro612/pyvenv-auto) to automatically load that environment inside Emacs. ```elisp (use-package pyvenv-auto diff --git a/pyproject.toml b/pyproject.toml index d2e61fdbb..e1eac802b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,3 +45,6 @@ Website = "https://daily.co" [tool.setuptools.packages.find] # All the following settings are optional: where = ["src"] + +[tool.pytest.ini_options] +pythonpath = ["src"] diff --git a/src/dailyai/tests/__init__.py b/src/dailyai/tests/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/dailyai/tests/integration/integration_azure_llm.py b/tests/integration/integration_azure_llm.py similarity index 100% rename from src/dailyai/tests/integration/integration_azure_llm.py rename to tests/integration/integration_azure_llm.py diff --git a/src/dailyai/tests/integration/integration_ollama_llm.py b/tests/integration/integration_ollama_llm.py similarity index 100% rename from src/dailyai/tests/integration/integration_ollama_llm.py rename to tests/integration/integration_ollama_llm.py diff --git a/src/dailyai/tests/integration/integration_openai_llm.py b/tests/integration/integration_openai_llm.py similarity index 100% rename from src/dailyai/tests/integration/integration_openai_llm.py rename to tests/integration/integration_openai_llm.py diff --git a/src/dailyai/tests/test_aggregators.py b/tests/test_aggregators.py similarity index 100% rename from src/dailyai/tests/test_aggregators.py rename to tests/test_aggregators.py diff --git a/src/dailyai/tests/test_ai_services.py b/tests/test_ai_services.py similarity index 100% rename from src/dailyai/tests/test_ai_services.py rename to tests/test_ai_services.py diff --git a/src/dailyai/tests/test_daily_transport_service.py b/tests/test_daily_transport_service.py similarity index 100% rename from src/dailyai/tests/test_daily_transport_service.py rename to tests/test_daily_transport_service.py diff --git a/src/dailyai/tests/test_pipeline.py b/tests/test_pipeline.py similarity index 100% rename from src/dailyai/tests/test_pipeline.py rename to tests/test_pipeline.py