From 7184fb32359e2b903ef74e09fd3b68d3d1057523 Mon Sep 17 00:00:00 2001 From: jo Date: Fri, 9 Sep 2022 11:52:19 +0200 Subject: [PATCH] test(worker): setup testing --- .github/workflows/worker.yml | 1 - codecov.yml | 5 +++++ worker/Makefile | 4 +++- worker/tests/conftest.py | 5 +++++ worker/tests/tasks_test.py | 25 +++++++++++++++++++++++++ 5 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 worker/tests/conftest.py create mode 100644 worker/tests/tasks_test.py diff --git a/.github/workflows/worker.yml b/.github/workflows/worker.yml index 866bcef0b..d0e0a9fbb 100644 --- a/.github/workflows/worker.yml +++ b/.github/workflows/worker.yml @@ -18,4 +18,3 @@ jobs: uses: ./.github/workflows/_python.yml with: context: worker - test: false diff --git a/codecov.yml b/codecov.yml index 2634ff8c3..fda9773e0 100644 --- a/codecov.yml +++ b/codecov.yml @@ -29,3 +29,8 @@ flags: paths: - shared/ carryforward: true + + worker: + paths: + - worker/ + carryforward: true diff --git a/worker/Makefile b/worker/Makefile index 88e3fafd7..325db2c78 100644 --- a/worker/Makefile +++ b/worker/Makefile @@ -1,4 +1,4 @@ -all: lint +all: lint test include ../tools/python.mk @@ -8,7 +8,9 @@ PIP_INSTALL := \ PYLINT_ARG := libretime_worker || true MYPY_ARG := libretime_worker || true BANDIT_ARG := libretime_worker || true +PYTEST_ARG = --cov=libretime_worker tests format: .format lint: .format-check .pylint .mypy .bandit +test: .pytest clean: .clean diff --git a/worker/tests/conftest.py b/worker/tests/conftest.py new file mode 100644 index 000000000..059970949 --- /dev/null +++ b/worker/tests/conftest.py @@ -0,0 +1,5 @@ +import os + +os.environ.setdefault("LIBRETIME_DEBUG", "true") +os.environ.setdefault("LIBRETIME_GENERAL_PUBLIC_URL", "http://localhost") +os.environ.setdefault("LIBRETIME_GENERAL_API_KEY", "testing") diff --git a/worker/tests/tasks_test.py b/worker/tests/tasks_test.py new file mode 100644 index 000000000..8f5e0b973 --- /dev/null +++ b/worker/tests/tasks_test.py @@ -0,0 +1,25 @@ +import pytest +from requests import Response + +from libretime_worker.tasks import extract_filename + + +@pytest.mark.parametrize( + "url, header, expected", + [ + ("http://example.com/from-url.mp3", None, "from-url.mp3"), + ( + "http://example.com/from-url.mp3", + 'attachment; filename="from-header.mp3"', + "from-header.mp3", + ), + ("http://example.com/from-url.mp3", "attachment", "from-url.mp3"), + ], +) +def test_extract_filename(url, header, expected): + resp = Response() + resp.url = url + if header is not None: + resp.headers["Content-Disposition"] = header + + assert extract_filename(resp) == expected