From 38e45efdcf823104d46ba128811aafe95df85a7a Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 2 Dec 2024 23:36:49 -0800 Subject: [PATCH] Add basic tests for schema validation --- src/documents/tests/test_api_schema.py | 27 ++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/documents/tests/test_api_schema.py diff --git a/src/documents/tests/test_api_schema.py b/src/documents/tests/test_api_schema.py new file mode 100644 index 000000000..fc2e0fdf3 --- /dev/null +++ b/src/documents/tests/test_api_schema.py @@ -0,0 +1,27 @@ +from django.core.management import call_command +from django.core.management.base import CommandError +from rest_framework import status +from rest_framework.test import APITestCase + + +class TestApiSchema(APITestCase): + ENDPOINT = "/api/schema/" + + def test_valid_schema(self): + """ + Test that the schema is valid + """ + try: + call_command("spectacular", "--validate", "--fail-on-warn") + except CommandError as e: + self.fail(f"Schema validation failed: {e}") + + def test_get_schema_endpoints(self): + """ + Test that the schema endpoints exist and return a 200 status code + """ + schema_response = self.client.get(self.ENDPOINT) + self.assertEqual(schema_response.status_code, status.HTTP_200_OK) + + ui_response = self.client.get(self.ENDPOINT + "view/") + self.assertEqual(ui_response.status_code, status.HTTP_200_OK)