This repository was archived by the owner on Nov 19, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 25
related_field not recognised in URL path #286
Copy link
Copy link
Open
Description
We are using RelationshipView from the DRF JSON:API package, and are experiencing limitations when using the schema tester on these type of endpoints.
We have the following path/view that handles the application of team members (POST/DELETE)
re_path(
r"^team/(?P<pk>\d+)/relationships/(?P<related_field>[-\w]+)/?$",
views.TeamMembersRelationshipView.as_view(),
name="team-members-relation",
),
When SchemaTester(schema_file_path=path/to/schemae/file.yaml) hits this path
response = self.client.delete(
reverse(
"teams:team-members-relation",
kwargs={
"pk": self.team_001.pk,
"related_field": "members",
},
),
payload,
content_type="application/vnd.api+json",
)
self.assertResponse(response)
We receive an UndocumentedSchemaSectionError
Traceback (most recent call last):
File "../.venv/lib/python3.9/site-packages/openapi_tester/schema_tester.py", line 102, in get_key_value
return schema[key]
KeyError: '/api/team/{id}/relationships/{related_field}'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "../.venv/lib/python3.9/site-packages/openapi_tester/schema_tester.py", line 403, in validate_response
response_schema = self.get_response_schema_section(response)
File "../.venv/lib/python3.9/site-packages/openapi_tester/schema_tester.py", line 144, in get_response_schema_section
route_object = self.get_key_value(
File "../.venv/lib/python3.9/site-packages/openapi_tester/schema_tester.py", line 104, in get_key_value
raise UndocumentedSchemaSectionError(
openapi_tester.exceptions.UndocumentedSchemaSectionError: Error: Unsuccessfully tried to index the OpenAPI schema by `/api/team/{id}/relationships/{related_field}`.
Undocumented route /api/team/{id}/relationships/{related_field}.
Documented routes:
• ...
• /api/teams
• /api/team/{id}
• /api/team/{id}/relationships/members
Why isn't the (undocumented) path resolving /api/team/{id}/relationships/{related_field} to the (documented) desired path /api/team/{id}/relationships/members as expected?
Is there something additional that needs to be defined in order for the schema tester to recognise these related_field path keys?
Metadata
Metadata
Assignees
Labels
No labels