From 727d8f2e262e0915cdaef9bc82c66d965dd209ca Mon Sep 17 00:00:00 2001 From: ftsell Date: Mon, 12 Feb 2024 20:02:14 +0100 Subject: [PATCH] add test generation and github action execution --- .github/workflows/test.yml | 4 +++- {{ cookiecutter.project_slug }}/Pipfile | 2 ++ {{ cookiecutter.project_slug }}/pyproject.toml | 9 +++++++++ .../api/tests/__init__.py | 0 .../api/tests/test_django_setup.py | 6 ++++++ .../core/tests/__init__.py | 0 .../core/tests/test_django_setup.py | 8 ++++++++ 7 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 {{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/api/tests/__init__.py create mode 100644 {{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/api/tests/test_django_setup.py create mode 100644 {{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/core/tests/__init__.py create mode 100644 {{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/core/tests/test_django_setup.py diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 09ed138..f67765e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,7 +31,7 @@ jobs: !/tmp/github_test_project/**/node_modules retention-days: 1 - run-test-project: + test-test-project: runs-on: ubuntu-latest needs: [ create-test-project ] steps: @@ -50,3 +50,5 @@ jobs: run: | chmod +x ./src/manage.py pipenv run ./src/manage.py --help + - name: pytest + run: pipenv run pytest diff --git a/{{ cookiecutter.project_slug }}/Pipfile b/{{ cookiecutter.project_slug }}/Pipfile index 828ee66..67e6588 100644 --- a/{{ cookiecutter.project_slug }}/Pipfile +++ b/{{ cookiecutter.project_slug }}/Pipfile @@ -19,6 +19,8 @@ opentelemetry-exporter-prometheus = "*" # translation of telemet ipython = "*" black = "*" isort = "*" +pytest = "*" +pytest-django = "*" [requires] python_version = "3" diff --git a/{{ cookiecutter.project_slug }}/pyproject.toml b/{{ cookiecutter.project_slug }}/pyproject.toml index e13a6b1..d662b53 100644 --- a/{{ cookiecutter.project_slug }}/pyproject.toml +++ b/{{ cookiecutter.project_slug }}/pyproject.toml @@ -3,3 +3,12 @@ line-length = 110 [tool.isort] profile = "black" + +[tool.pytest.ini_options] +pythonpath = "src" +testpaths = "src/{{ cookiecutter.project_slug }}/*/tests" +log_cli = true +log_cli_level = "info" +django_find_project = false +norecursedirs = "dev_db *.egg .* dist node_modules" +DJANGO_SETTINGS_MODULE = "{{ cookiecutter.project_slug }}.settings" diff --git a/{{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/api/tests/__init__.py b/{{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/api/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/{{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/api/tests/test_django_setup.py b/{{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/api/tests/test_django_setup.py new file mode 100644 index 0000000..33972ec --- /dev/null +++ b/{{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/api/tests/test_django_setup.py @@ -0,0 +1,6 @@ +from django.shortcuts import resolve_url + + +def test_openapi_schema_loads(client): + response = client.get(resolve_url("openapi_schema")) + assert response.status_code == 200 diff --git a/{{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/core/tests/__init__.py b/{{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/core/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/{{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/core/tests/test_django_setup.py b/{{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/core/tests/test_django_setup.py new file mode 100644 index 0000000..31e0bd6 --- /dev/null +++ b/{{ cookiecutter.project_slug }}/src/{{ cookiecutter.project_slug }}/core/tests/test_django_setup.py @@ -0,0 +1,8 @@ +def test_django_loads(): + from django.conf import settings + assert len(settings.INSTALLED_APPS) > 0 + + +@pytest.mark.django_db() +def test_db_connection(django_user_model): + assert django_user_model.objects.all().count() == 0