Skip to content

Commit

Permalink
✅ [#34] test drf-spectacular extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
annashamray committed May 7, 2024
1 parent 0152c97 commit ae73ded
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 0 deletions.
1 change: 1 addition & 0 deletions testapp/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class ZaakSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Zaak
fields = ("url", "zaaktype", "name")
extra_kwargs = {"zaaktype": {"max_length": 1000}}


class ZaakObjectSerializer(serializers.HyperlinkedModelSerializer):
Expand Down
8 changes: 8 additions & 0 deletions testapp/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from django.apps import AppConfig


class TestAppConfig(AppConfig):
name = "testapp"

def ready(self):
from django_loose_fk import oas_extensions # noqa
2 changes: 2 additions & 0 deletions testapp/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,5 @@ def get_db():
ALLOWED_HOSTS = ["testserver.com", "testserver.local"]

USE_TZ = False

REST_FRAMEWORK = {"DEFAULT_SCHEMA_CLASS": "drf_spectacular.openapi.AutoSchema"}
45 changes: 45 additions & 0 deletions tests/test_api_docs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
from drf_spectacular.generators import SchemaGenerator


def test_field_schema():
schema = SchemaGenerator().get_schema(request=None, public=True)

zaaktype_schema = schema["components"]["schemas"]["Zaak"]["properties"]["zaaktype"]
assert zaaktype_schema == {
"type": "string",
"format": "uri",
"maxLength": 1000,
"minLength": None,
}


def test_filter_schema():
schema = SchemaGenerator().get_schema(request=None, public=True)

parameters_schema = schema["paths"]["/zaken/"]["get"]["parameters"]

assert len(parameters_schema) == 2

zaaktype_param = parameters_schema[0]
assert zaaktype_param["name"] == "zaaktype"
assert zaaktype_param["schema"]["type"] == "string"
assert zaaktype_param["schema"]["format"] == "uri"

zaaktype_in_param = parameters_schema[1]
assert zaaktype_in_param["name"] == "zaaktype__in"
assert zaaktype_in_param["schema"]["type"] == "array"
assert zaaktype_in_param["schema"]["items"]["type"] == "string"
assert zaaktype_in_param["schema"]["items"]["format"] == "uri"


def test_declared_filter_schema():
schema = SchemaGenerator().get_schema(request=None, public=True)

parameters_schema = schema["paths"]["/zaakobjectfk/"]["get"]["parameters"]

assert len(parameters_schema) == 1
param = parameters_schema[0]

assert param["name"] == "zaak"
assert param["schema"]["type"] == "string"
assert param["schema"]["format"] == "uri"

0 comments on commit ae73ded

Please sign in to comment.