From 246377ac113e8fd3f5efbb77dc4d624c3b162002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9C=D1=83=D1=80?= =?UTF-8?q?=D1=82=D0=B0=D0=B7=D0=B8=D0=BD?= Date: Wed, 10 Nov 2021 21:54:50 +0500 Subject: [PATCH] Added query parameter for request methods --- rest_framework_smoke/tests/mixins.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/rest_framework_smoke/tests/mixins.py b/rest_framework_smoke/tests/mixins.py index a8a7366..c218895 100644 --- a/rest_framework_smoke/tests/mixins.py +++ b/rest_framework_smoke/tests/mixins.py @@ -166,6 +166,7 @@ def perform_request(self, suffix: str, detail: bool, *, status: int = HTTP_200_OK, data: Optional[dict] = None, format: str = 'json', + query: Union[None, dict, MultiValueDict] = None, **kwargs: Any) -> Response: """ Requests viewset endpoint. @@ -177,12 +178,13 @@ def perform_request(self, suffix: str, detail: bool, *, :param status: expected response status :param data: request body data :param format: request format (json/multipart) + :param query: request query parameters :param kwargs: url reversing parameters """ headers = headers or {} if detail and not kwargs: kwargs = self.get_detail_url_kwargs(self.obj) - url = self.url(suffix, **kwargs) + url = self.url(suffix, query=query, **kwargs) body: Union[None, str, bytes] = None content_type = headers.pop('content_type', 'application/octet-stream') if data is not None: @@ -208,14 +210,21 @@ def get_detail_url_kwargs(self, obj: models.Model) -> dict: return {self.details_url_kwarg: value} def get_list(self, headers: Optional[dict] = None, - status: int = HTTP_200_OK, **kwargs: Any) -> List[dict]: + status: int = HTTP_200_OK, + query: Union[None, dict, MultiValueDict] = None, + **kwargs: Any) -> List[dict]: """ Returns list of object retrieved through api. If pagination_schema is set, strips pagination info from response + + :param headers: API request headers + :param status: excepted response HTTP status code + :param query: query parameter for request + :param kwargs: URL reversing parameters """ r = self.perform_request('list', False, headers=headers, - status=status, **kwargs) + status=status, query=query, **kwargs) data = r.json() if self.pagination_schema: return data.get(self.page_result_key, data) @@ -364,12 +373,17 @@ def assert_json_schema(self, obj: dict, schema: dict) -> None: self.fail(e.message) def assert_object_list(self, objects: List[models.Model], + query: Union[None, dict, MultiValueDict] = None, **kwargs: Any) -> None: """ Requests object list and checks primary key lists with expected object list. + + :param objects: excepted object list + :param query: request query parameters + :param kwargs: reversing parameters for list url """ - data = self.get_list(**kwargs) + data = self.get_list(query=query, **kwargs) ids = [obj[self.pk_field] for obj in data] expected = [obj.pk for obj in objects] self.assertListEqual(ids, expected)