From 56aec8982c2c55d85221f75038ba158c027b7ad4 Mon Sep 17 00:00:00 2001 From: Piotr Dec Date: Sun, 12 Jul 2026 22:33:29 +0200 Subject: [PATCH 1/2] test: path fixes --- src/karl/services/vcs.py | 2 +- tests/test_mo_env.py | 6 ++---- tests/test_woodpecker.py | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/karl/services/vcs.py b/src/karl/services/vcs.py index 0d70139..50be523 100644 --- a/src/karl/services/vcs.py +++ b/src/karl/services/vcs.py @@ -2,7 +2,7 @@ from git import Repo, Remote from injectable import injectable from karl.config import GitConfig, get_settings -from model.vcs import Head +from karl.model.vcs import Head @injectable(singleton=True) diff --git a/tests/test_mo_env.py b/tests/test_mo_env.py index b5e26a7..5e245b9 100644 --- a/tests/test_mo_env.py +++ b/tests/test_mo_env.py @@ -8,8 +8,7 @@ from karl.services.mo import Mo @pytest.fixture(scope='class') def target_path(): - # p = Path('tests/files/test1/test.env') - p = Path('files/test1/test.env') + p = Path('tests/files/test1/test.env') # posprzątaj przed testem, gdyby plik istniał z poprzednich uruchomień if p.exists(): p.unlink() @@ -22,8 +21,7 @@ def target_path(): @pytest.fixture(scope='class') def test1_content(target_path: Path): mo = Mo(Passwords()) - mo.process(Path('files/test1/test.mo.env').absolute()) - # mo.process(Path('tests/files/test1/test.mo.env').absolute()) + mo.process(Path('tests/files/test1/test.mo.env').absolute()) assert target_path.absolute().exists() diff --git a/tests/test_woodpecker.py b/tests/test_woodpecker.py index 9bb4616..f4104db 100644 --- a/tests/test_woodpecker.py +++ b/tests/test_woodpecker.py @@ -1,4 +1,4 @@ -from core import woodpecker +from karl.core import woodpecker files = [".gitignore", "compose/nginx/docker-compose.yaml", "config/heimdall.kdbx", "files/nginx/cert/fullchain.mo.pem", "files/nginx/cert/key.mo.pem", "files/nginx/conf.d/default.conf", "files/nginx/conf.d/forge.conf", From a5b275fa1255417675fdaaeed87417623ae512d4 Mon Sep 17 00:00:00 2001 From: Piotr Dec Date: Sun, 12 Jul 2026 22:47:44 +0200 Subject: [PATCH 2/2] ci: python pipeline --- .woodpecker/dev.yaml | 2 ++ .woodpecker/latest.yaml | 2 ++ .woodpecker/python.yaml | 16 ++++++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 .woodpecker/python.yaml diff --git a/.woodpecker/dev.yaml b/.woodpecker/dev.yaml index f837559..dbe313d 100644 --- a/.woodpecker/dev.yaml +++ b/.woodpecker/dev.yaml @@ -13,3 +13,5 @@ steps: - event: pull_request evaluate: 'CI_COMMIT_PULL_REQUEST_LABELS contains "ci-ready"' - event: manual + depends_on: + - name: python diff --git a/.woodpecker/latest.yaml b/.woodpecker/latest.yaml index 8309154..1ce29a7 100644 --- a/.woodpecker/latest.yaml +++ b/.woodpecker/latest.yaml @@ -12,3 +12,5 @@ steps: when: - event: [ tag, push, manual ] branch: master + depends_on: + - name: python diff --git a/.woodpecker/python.yaml b/.woodpecker/python.yaml new file mode 100644 index 0000000..fa5c5a3 --- /dev/null +++ b/.woodpecker/python.yaml @@ -0,0 +1,16 @@ +steps: + - name: test + image: ghcr.io/astral-sh/uv:0.9-python3.12-alpine + commands: + - uv sync + - pytest + - | + python src/karl/__init__.py 2>&1 | while IFS= read -r line; do + echo "$line" + if echo "$line" | grep -q "Uvicorn running on"; then + pkill -f "uvicorn" + break + fi + done + when: + - event: push