diff --git a/.github/workflows/dockerized-tests.yml b/.github/workflows/dockerized-tests.yml new file mode 100644 index 00000000..c2959bc4 --- /dev/null +++ b/.github/workflows/dockerized-tests.yml @@ -0,0 +1,40 @@ +name: Built docker image and run tests + +# This workflow will built docker image and run tests inside the container. +# This workflow is only executed when a push is made in "develop", or +# if there is a change in pyproject.toml dependencies, or in Dockerfile, or in docker workflow. + +on: + push: + paths: + - '.github/workflows/docker-image.yml' + - 'pyproject.toml' + - 'Dockerfile' + branches: + - "develop" + + # allows to manually start a workflow run from the GitHub UI or using the GitHub API. + workflow_dispatch: + +jobs: + built: + runs-on: ubuntu-latest + permissions: + packages: write + + steps: + - uses: actions/checkout@v2 + - name: Build the docker image + run: docker build --tag ai4eu_server_demo:latest -f Dockerfile . + + - name: Run docker container and pytest tests + run: | + docker run -e KEYCLOAK_CLIENT_SECRET="mocked_secret" --entrypoint "" ai4eu_server_demo sh -c "pip install \".[dev]\" && pytest tests -s" + + + + + + + + diff --git a/pyproject.toml b/pyproject.toml index 3e6e2626..518bee90 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,6 +44,9 @@ dev = [ "starlette==0.27.0" ] +[tool.setuptools] +py-modules = [] + [tool.black] line-length = 100 @@ -57,3 +60,5 @@ env_files = [ "src/tests/.env" ] + + diff --git a/src/tests/routers/test_router_case_study.py b/src/tests/routers/test_router_case_study.py index 376be2a4..b8e5fb9a 100644 --- a/src/tests/routers/test_router_case_study.py +++ b/src/tests/routers/test_router_case_study.py @@ -26,10 +26,10 @@ def test_happy_path(client: TestClient, mocked_privileged_token: Mock): } response = client.post("/case_studies/v0", json=body, headers={"Authorization": "Fake token"}) - assert response.status_code == 200 + assert response.status_code == 200, response.json() response = client.get("/case_studies/v0/1") - assert response.status_code == 200 + assert response.status_code == 200, response.json() response_json = response.json() assert response_json["identifier"] == 1 @@ -48,4 +48,4 @@ def test_happy_path(client: TestClient, mocked_privileged_token: Mock): "technical category 2", } response = client.delete("/case_studies/v0/1", headers={"Authorization": "Fake token"}) - assert response.status_code == 200 + assert response.status_code == 200, response.json()