mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2025-08-05 12:40:17 +03:00
Use swagger only in debug mode
This commit is contained in:
parent
ad4fbefce7
commit
cdee044612
|
@ -43,12 +43,6 @@ urlpatterns += [
|
||||||
path("api/", include("config.api_router")),
|
path("api/", include("config.api_router")),
|
||||||
# DRF auth token
|
# DRF auth token
|
||||||
path("api/auth-token/", obtain_auth_token),
|
path("api/auth-token/", obtain_auth_token),
|
||||||
path("api/schema/", SpectacularAPIView.as_view(), name="api-schema"),
|
|
||||||
path(
|
|
||||||
"api/docs/",
|
|
||||||
SpectacularSwaggerView.as_view(url_name="api-schema"),
|
|
||||||
name="api-docs",
|
|
||||||
),
|
|
||||||
]
|
]
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
|
@ -56,6 +50,8 @@ if settings.DEBUG:
|
||||||
# This allows the error pages to be debugged during development, just visit
|
# This allows the error pages to be debugged during development, just visit
|
||||||
# these url in browser to see how these error pages look like.
|
# these url in browser to see how these error pages look like.
|
||||||
urlpatterns += [
|
urlpatterns += [
|
||||||
|
path("api/schema/", SpectacularAPIView.as_view(), name="api-schema"),
|
||||||
|
path("api/docs/", SpectacularSwaggerView.as_view(url_name="api-schema"), name="api-docs"),
|
||||||
path(
|
path(
|
||||||
"400/",
|
"400/",
|
||||||
default_views.bad_request,
|
default_views.bad_request,
|
||||||
|
|
|
@ -24,7 +24,7 @@ services:
|
||||||
- ./.envs/.local/.django
|
- ./.envs/.local/.django
|
||||||
- ./.envs/.local/.postgres
|
- ./.envs/.local/.postgres
|
||||||
- path: ./.env # Use this .env file to override the values .envs/.local/.django
|
- path: ./.env # Use this .env file to override the values .envs/.local/.django
|
||||||
- required: false
|
required: false
|
||||||
ports:
|
ports:
|
||||||
- '8000:8000'
|
- '8000:8000'
|
||||||
command: /start
|
command: /start
|
||||||
|
|
|
@ -1,23 +1,36 @@
|
||||||
from http import HTTPStatus
|
from http import HTTPStatus
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
from django.conf import settings
|
||||||
|
from django.urls import NoReverseMatch
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
||||||
|
|
||||||
def test_api_docs_accessible_by_admin(admin_client):
|
@pytest.mark.skipif(not settings.DEBUG, reason="Swagger is implemented only in debug mode")
|
||||||
|
def test_swagger_accessible_by_admin(admin_client):
|
||||||
url = reverse("api-docs")
|
url = reverse("api-docs")
|
||||||
response = admin_client.get(url)
|
response = admin_client.get(url)
|
||||||
assert response.status_code == HTTPStatus.OK
|
assert response.status_code == HTTPStatus.OK
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skipif(not settings.DEBUG, reason="Swagger is implemented only in debug mode")
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_api_docs_not_accessible_by_anonymous_users(client):
|
def test_swagger_ui_not_accessible(client):
|
||||||
url = reverse("api-docs")
|
url = reverse("api-docs")
|
||||||
response = client.get(url)
|
response = client.get(url)
|
||||||
assert response.status_code == HTTPStatus.FORBIDDEN
|
assert response.status_code == HTTPStatus.FORBIDDEN
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skipif(not settings.DEBUG, reason="Swagger is implemented only in debug mode")
|
||||||
def test_api_schema_generated_successfully(admin_client):
|
def test_api_schema_generated_successfully(admin_client):
|
||||||
url = reverse("api-schema")
|
url = reverse("api-schema")
|
||||||
response = admin_client.get(url)
|
response = admin_client.get(url)
|
||||||
assert response.status_code == HTTPStatus.OK
|
assert response.status_code == HTTPStatus.OK
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skipif(settings.DEBUG, reason="Swagger is implemented only in debug mode")
|
||||||
|
def test_swagger_not_accessible():
|
||||||
|
assert not settings.DEBUG, "Swagger is implemented only in debug mode"
|
||||||
|
|
||||||
|
with pytest.raises(NoReverseMatch):
|
||||||
|
reverse("api-docs")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user