2 Commits

Author SHA1 Message Date
lyrathorpe e05f08995e chore: separate runtime and dev dependencies, add pytest config and CI cache
Build and publish container / build (push) Successful in 8m20s
2026-06-17 16:40:39 +01:00
lyrathorpe 91d70cf10c test: finalize CI test coverage and fix dependency import path 2026-06-17 16:39:22 +01:00
8 changed files with 32 additions and 8 deletions
+11 -2
View File
@@ -46,10 +46,19 @@ jobs:
python-version: 3.12 python-version: 3.12
- name: Install test dependencies - name: Install test dependencies
run: python -m pip install --upgrade pip && pip install -r requirements.txt run: python -m pip install --upgrade pip && pip install -r requirements-dev.txt
- name: Cache pip dependencies
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: "$RUNNER_OS-pip-${{ hashFiles('requirements-dev.txt') }}"
restore-keys: |
$RUNNER_OS-pip-
- name: Run unit tests - name: Run unit tests
run: pytest -q run: python -m pytest -q
- name: Determine registry host - name: Determine registry host
run: echo "REGISTRY=${GITHUB_SERVER_URL#*://}" >> "$GITHUB_ENV" run: echo "REGISTRY=${GITHUB_SERVER_URL#*://}" >> "$GITHUB_ENV"
+4 -2
View File
@@ -50,11 +50,13 @@ docker run --rm -p 110:110 -p 25:25 \
## Tests ## Tests
Run tests locally with: Install development dependencies and run the test suite:
```bash ```bash
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install -r requirements.txt pip install -r requirements-dev.txt
pytest -q pytest -q
``` ```
+5
View File
@@ -0,0 +1,5 @@
[pytest]
minversion = 7.0
testpaths = tests
python_files = test_*.py
addopts = -q
+2
View File
@@ -0,0 +1,2 @@
-r requirements.txt
pytest>=8.0.0
+1 -2
View File
@@ -1,2 +1 @@
aiosmtpd>=1.6.3 aiosmtpd>=1.4.6,<1.5
pytest>=8.0.0
+7
View File
@@ -0,0 +1,7 @@
import os
import sys
# Ensure the project root is on sys.path when running tests.
ROOT = os.path.dirname(os.path.dirname(__file__))
if ROOT not in sys.path:
sys.path.insert(0, ROOT)
+1 -1
View File
@@ -114,7 +114,7 @@ def test_smtp_proxy_handler_forwards_message_over_ssl(monkeypatch):
assert captured["instance"].logged_in is True assert captured["instance"].logged_in is True
assert captured["instance"].sent[0] == "from@example.com" assert captured["instance"].sent[0] == "from@example.com"
assert captured["instance"].sent[1] == ["to@example.com"] assert captured["instance"].sent[1] == ["to@example.com"]
assert b"Subject: Test" in captured["instance"].sent[2] assert "Subject: Test" in captured["instance"].sent[2]
Settings.BACKEND_SMTP_USE_SSL = previous_ssl Settings.BACKEND_SMTP_USE_SSL = previous_ssl
Settings.BACKEND_SMTP_USER = previous_user Settings.BACKEND_SMTP_USER = previous_user