From fd72c1d37631ccb0af9ae38c3e3181b2e1d28092 Mon Sep 17 00:00:00 2001 From: Pavel Safronov Date: Mon, 25 Oct 2021 13:08:19 +0100 Subject: [PATCH] Added new graphql request (no backwards compatibility from here) --- README.generated.md | 5 + docs/AnyOfGraphqlQueryVariables.md | 8 + docs/GraphqlData.md | 1 + docs/GraphqlProblemsetQuestionList.md | 10 + docs/GraphqlQuery.md | 2 +- .../GraphqlQueryGetQuestionDetailVariables.md | 9 + ...hqlQueryProblemsetQuestionListVariables.md | 12 + ...blemsetQuestionListVariablesFilterInput.md | 13 + docs/GraphqlQueryVariables.md | 1 - example.py | 6 +- leetcode/__init__.py | 13 + leetcode/models/__init__.py | 13 + .../models/any_of_graphql_query_variables.py | 87 +++++++ leetcode/models/graphql_data.py | 44 +++- .../graphql_problemset_question_list.py | 135 +++++++++++ leetcode/models/graphql_query.py | 6 +- ...hql_query_get_question_detail_variables.py | 111 +++++++++ ...uery_problemset_question_list_variables.py | 195 +++++++++++++++ ...et_question_list_variables_filter_input.py | 225 ++++++++++++++++++ leetcode/models/graphql_query_variables.py | 30 +-- leetcode/models/graphql_question_solution.py | 4 +- leetcode/models/graphql_user.py | 4 +- setup.py | 3 +- test/test_any_of_graphql_query_variables.py | 41 ++++ ...any_of_graphql_question_detail_solution.py | 2 +- test/test_graphql_data.py | 2 +- test/test_graphql_problemset_question_list.py | 41 ++++ ...hql_query_get_question_detail_variables.py | 41 ++++ ...uery_problemset_question_list_variables.py | 41 ++++ ...et_question_list_variables_filter_input.py | 41 ++++ test/test_graphql_question_code_snippet.py | 2 +- test/test_graphql_question_contributor.py | 2 +- test/test_graphql_question_solution.py | 2 +- test/test_graphql_question_topic_tag.py | 2 +- ...est_graphql_request_get_question_detail.py | 10 +- ...raphql_request_problemset_question_list.py | 210 ++++++++++++++++ test/test_graphql_request_user.py | 4 +- test/test_graphql_user.py | 2 +- 38 files changed, 1327 insertions(+), 53 deletions(-) create mode 100644 docs/AnyOfGraphqlQueryVariables.md create mode 100644 docs/GraphqlProblemsetQuestionList.md create mode 100644 docs/GraphqlQueryGetQuestionDetailVariables.md create mode 100644 docs/GraphqlQueryProblemsetQuestionListVariables.md create mode 100644 docs/GraphqlQueryProblemsetQuestionListVariablesFilterInput.md create mode 100644 leetcode/models/any_of_graphql_query_variables.py create mode 100644 leetcode/models/graphql_problemset_question_list.py create mode 100644 leetcode/models/graphql_query_get_question_detail_variables.py create mode 100644 leetcode/models/graphql_query_problemset_question_list_variables.py create mode 100644 leetcode/models/graphql_query_problemset_question_list_variables_filter_input.py create mode 100644 test/test_any_of_graphql_query_variables.py create mode 100644 test/test_graphql_problemset_question_list.py create mode 100644 test/test_graphql_query_get_question_detail_variables.py create mode 100644 test/test_graphql_query_problemset_question_list_variables.py create mode 100644 test/test_graphql_query_problemset_question_list_variables_filter_input.py create mode 100644 test/test_graphql_request_problemset_question_list.py diff --git a/README.generated.md b/README.generated.md index 1e09d88..248de56 100644 --- a/README.generated.md +++ b/README.generated.md @@ -223,11 +223,16 @@ Class | Method | HTTP request | Description ## Documentation For Models + - [AnyOfGraphqlQueryVariables](docs/AnyOfGraphqlQueryVariables.md) - [AnyOfGraphqlQuestionDetailSolution](docs/AnyOfGraphqlQuestionDetailSolution.md) - [BaseSubmissionResult](docs/BaseSubmissionResult.md) - [Difficulty](docs/Difficulty.md) - [GraphqlData](docs/GraphqlData.md) + - [GraphqlProblemsetQuestionList](docs/GraphqlProblemsetQuestionList.md) - [GraphqlQuery](docs/GraphqlQuery.md) + - [GraphqlQueryGetQuestionDetailVariables](docs/GraphqlQueryGetQuestionDetailVariables.md) + - [GraphqlQueryProblemsetQuestionListVariables](docs/GraphqlQueryProblemsetQuestionListVariables.md) + - [GraphqlQueryProblemsetQuestionListVariablesFilterInput](docs/GraphqlQueryProblemsetQuestionListVariablesFilterInput.md) - [GraphqlQueryVariables](docs/GraphqlQueryVariables.md) - [GraphqlQuestionCodeSnippet](docs/GraphqlQuestionCodeSnippet.md) - [GraphqlQuestionContributor](docs/GraphqlQuestionContributor.md) diff --git a/docs/AnyOfGraphqlQueryVariables.md b/docs/AnyOfGraphqlQueryVariables.md new file mode 100644 index 0000000..e310fe2 --- /dev/null +++ b/docs/AnyOfGraphqlQueryVariables.md @@ -0,0 +1,8 @@ +# AnyOfGraphqlQueryVariables + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/GraphqlData.md b/docs/GraphqlData.md index a95ab84..549dc26 100644 --- a/docs/GraphqlData.md +++ b/docs/GraphqlData.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **question** | [**GraphqlQuestionDetail**](GraphqlQuestionDetail.md) | | [optional] **user** | [**GraphqlUser**](GraphqlUser.md) | | [optional] +**problemset_question_list** | [**GraphqlProblemsetQuestionList**](GraphqlProblemsetQuestionList.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/GraphqlProblemsetQuestionList.md b/docs/GraphqlProblemsetQuestionList.md new file mode 100644 index 0000000..5253478 --- /dev/null +++ b/docs/GraphqlProblemsetQuestionList.md @@ -0,0 +1,10 @@ +# GraphqlProblemsetQuestionList + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**total** | **int** | | [optional] +**questions** | [**list[GraphqlQuestionDetail]**](GraphqlQuestionDetail.md) | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/GraphqlQuery.md b/docs/GraphqlQuery.md index 29a35b3..b0bf2f1 100644 --- a/docs/GraphqlQuery.md +++ b/docs/GraphqlQuery.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **query** | **str** | | -**variables** | [**GraphqlQueryVariables**](GraphqlQueryVariables.md) | | +**variables** | [**AnyOfGraphqlQueryVariables**](AnyOfGraphqlQueryVariables.md) | | **operation_name** | **str** | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/GraphqlQueryGetQuestionDetailVariables.md b/docs/GraphqlQueryGetQuestionDetailVariables.md new file mode 100644 index 0000000..b56e29f --- /dev/null +++ b/docs/GraphqlQueryGetQuestionDetailVariables.md @@ -0,0 +1,9 @@ +# GraphqlQueryGetQuestionDetailVariables + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**title_slug** | **str** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/GraphqlQueryProblemsetQuestionListVariables.md b/docs/GraphqlQueryProblemsetQuestionListVariables.md new file mode 100644 index 0000000..ee50a54 --- /dev/null +++ b/docs/GraphqlQueryProblemsetQuestionListVariables.md @@ -0,0 +1,12 @@ +# GraphqlQueryProblemsetQuestionListVariables + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**category_slug** | **str** | | [optional] +**limit** | **int** | | [optional] +**skip** | **int** | | [optional] +**filters** | [**GraphqlQueryProblemsetQuestionListVariablesFilterInput**](GraphqlQueryProblemsetQuestionListVariablesFilterInput.md) | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/GraphqlQueryProblemsetQuestionListVariablesFilterInput.md b/docs/GraphqlQueryProblemsetQuestionListVariablesFilterInput.md new file mode 100644 index 0000000..ec69410 --- /dev/null +++ b/docs/GraphqlQueryProblemsetQuestionListVariablesFilterInput.md @@ -0,0 +1,13 @@ +# GraphqlQueryProblemsetQuestionListVariablesFilterInput + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**tags** | **list[str]** | | [optional] +**difficulty** | **str** | | [optional] +**status** | **str** | | [optional] +**list_id** | **str** | | [optional] +**premium_only** | **bool** | | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/GraphqlQueryVariables.md b/docs/GraphqlQueryVariables.md index cd77fc5..bd9a674 100644 --- a/docs/GraphqlQueryVariables.md +++ b/docs/GraphqlQueryVariables.md @@ -3,7 +3,6 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**title_slug** | **str** | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/example.py b/example.py index 3a29181..8d38d7d 100644 --- a/example.py +++ b/example.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import os import sys from time import sleep @@ -10,9 +12,9 @@ # NOTE: cookies var is just a dict with `csrftoken` and `LEETCODE_SESSION` # fields which contain corresponding cookies from web browser -leetcode_session = os.environ["LEETCODE_SESSION_ID"] +leetcode_session: str = os.environ["LEETCODE_SESSION_ID"] -csrf_token = leetcode.auth.get_csrf_cookie(leetcode_session) +csrf_token: str = leetcode.auth.get_csrf_cookie(leetcode_session) configuration.api_key["x-csrftoken"] = csrf_token configuration.api_key["csrftoken"] = csrf_token diff --git a/leetcode/__init__.py b/leetcode/__init__.py index 0bd925d..707af62 100644 --- a/leetcode/__init__.py +++ b/leetcode/__init__.py @@ -22,13 +22,26 @@ from leetcode.configuration import Configuration # import models into sdk package +from leetcode.models.any_of_graphql_query_variables import AnyOfGraphqlQueryVariables from leetcode.models.any_of_graphql_question_detail_solution import ( AnyOfGraphqlQuestionDetailSolution, ) from leetcode.models.base_submission_result import BaseSubmissionResult from leetcode.models.difficulty import Difficulty from leetcode.models.graphql_data import GraphqlData +from leetcode.models.graphql_problemset_question_list import ( + GraphqlProblemsetQuestionList, +) from leetcode.models.graphql_query import GraphqlQuery +from leetcode.models.graphql_query_get_question_detail_variables import ( + GraphqlQueryGetQuestionDetailVariables, +) +from leetcode.models.graphql_query_problemset_question_list_variables import ( + GraphqlQueryProblemsetQuestionListVariables, +) +from leetcode.models.graphql_query_problemset_question_list_variables_filter_input import ( + GraphqlQueryProblemsetQuestionListVariablesFilterInput, +) from leetcode.models.graphql_query_variables import GraphqlQueryVariables from leetcode.models.graphql_question_code_snippet import GraphqlQuestionCodeSnippet from leetcode.models.graphql_question_contributor import GraphqlQuestionContributor diff --git a/leetcode/models/__init__.py b/leetcode/models/__init__.py index a1cd290..de07276 100644 --- a/leetcode/models/__init__.py +++ b/leetcode/models/__init__.py @@ -14,13 +14,26 @@ from __future__ import absolute_import # import models into model package +from leetcode.models.any_of_graphql_query_variables import AnyOfGraphqlQueryVariables from leetcode.models.any_of_graphql_question_detail_solution import ( AnyOfGraphqlQuestionDetailSolution, ) from leetcode.models.base_submission_result import BaseSubmissionResult from leetcode.models.difficulty import Difficulty from leetcode.models.graphql_data import GraphqlData +from leetcode.models.graphql_problemset_question_list import ( + GraphqlProblemsetQuestionList, +) from leetcode.models.graphql_query import GraphqlQuery +from leetcode.models.graphql_query_get_question_detail_variables import ( + GraphqlQueryGetQuestionDetailVariables, +) +from leetcode.models.graphql_query_problemset_question_list_variables import ( + GraphqlQueryProblemsetQuestionListVariables, +) +from leetcode.models.graphql_query_problemset_question_list_variables_filter_input import ( + GraphqlQueryProblemsetQuestionListVariablesFilterInput, +) from leetcode.models.graphql_query_variables import GraphqlQueryVariables from leetcode.models.graphql_question_code_snippet import GraphqlQuestionCodeSnippet from leetcode.models.graphql_question_contributor import GraphqlQuestionContributor diff --git a/leetcode/models/any_of_graphql_query_variables.py b/leetcode/models/any_of_graphql_query_variables.py new file mode 100644 index 0000000..2fcc4d9 --- /dev/null +++ b/leetcode/models/any_of_graphql_query_variables.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + Leetcode API + + Leetcode API implementation. # noqa: E501 + + OpenAPI spec version: 1.0.1-1 + Contact: pv.safronov@gmail.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" +from __future__ import annotations + +import pprint +import re # noqa: F401 + +import six + + +class AnyOfGraphqlQueryVariables(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = {} + + attribute_map = {} + + def __init__(self) -> None: # noqa: E501 + """AnyOfGraphqlQueryVariables - a model defined in Swagger""" # noqa: E501 + self.discriminator = None + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list( + map(lambda x: x.to_dict() if hasattr(x, "to_dict") else x, value) + ) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict( + map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") + else item, + value.items(), + ) + ) + else: + result[attr] = value + if issubclass(AnyOfGraphqlQueryVariables, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self) -> str: + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self) -> str: + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other: AnyOfGraphqlQueryVariables) -> bool: + """Returns true if both objects are equal""" + if not isinstance(other, AnyOfGraphqlQueryVariables): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other) -> bool: + """Returns true if both objects are not equal""" + return not self == other diff --git a/leetcode/models/graphql_data.py b/leetcode/models/graphql_data.py index 3562cbe..5f8b66a 100644 --- a/leetcode/models/graphql_data.py +++ b/leetcode/models/graphql_data.py @@ -30,19 +30,32 @@ class GraphqlData(object): attribute_map (dict): The key is attribute name and the value is json key in definition. """ - swagger_types = {"question": "GraphqlQuestionDetail", "user": "GraphqlUser"} - - attribute_map = {"question": "question", "user": "user"} - - def __init__(self, question=None, user=None) -> None: # noqa: E501 + swagger_types = { + "question": "GraphqlQuestionDetail", + "user": "GraphqlUser", + "problemset_question_list": "GraphqlProblemsetQuestionList", + } + + attribute_map = { + "question": "question", + "user": "user", + "problemset_question_list": "problemsetQuestionList", + } + + def __init__( + self, question=None, user=None, problemset_question_list=None + ) -> None: # noqa: E501 """GraphqlData - a model defined in Swagger""" # noqa: E501 self._question = None self._user = None + self._problemset_question_list = None self.discriminator = None if question is not None: self.question = question if user is not None: self.user = user + if problemset_question_list is not None: + self.problemset_question_list = problemset_question_list @property def question(self): @@ -86,6 +99,27 @@ def user(self, user): self._user = user + @property + def problemset_question_list(self): + """Gets the problemset_question_list of this GraphqlData. # noqa: E501 + + + :return: The problemset_question_list of this GraphqlData. # noqa: E501 + :rtype: GraphqlProblemsetQuestionList + """ + return self._problemset_question_list + + @problemset_question_list.setter + def problemset_question_list(self, problemset_question_list): + """Sets the problemset_question_list of this GraphqlData. + + + :param problemset_question_list: The problemset_question_list of this GraphqlData. # noqa: E501 + :type: GraphqlProblemsetQuestionList + """ + + self._problemset_question_list = problemset_question_list + def to_dict(self): """Returns the model properties as a dict""" result = {} diff --git a/leetcode/models/graphql_problemset_question_list.py b/leetcode/models/graphql_problemset_question_list.py new file mode 100644 index 0000000..890b1e1 --- /dev/null +++ b/leetcode/models/graphql_problemset_question_list.py @@ -0,0 +1,135 @@ +# coding: utf-8 + +""" + Leetcode API + + Leetcode API implementation. # noqa: E501 + + OpenAPI spec version: 1.0.1-1 + Contact: pv.safronov@gmail.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" +from __future__ import annotations + +import pprint +import re # noqa: F401 + +import six + + +class GraphqlProblemsetQuestionList(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = {"total": "int", "questions": "list[GraphqlQuestionDetail]"} + + attribute_map = {"total": "total", "questions": "questions"} + + def __init__(self, total=None, questions=None) -> None: # noqa: E501 + """GraphqlProblemsetQuestionList - a model defined in Swagger""" # noqa: E501 + self._total = None + self._questions = None + self.discriminator = None + if total is not None: + self.total = total + if questions is not None: + self.questions = questions + + @property + def total(self): + """Gets the total of this GraphqlProblemsetQuestionList. # noqa: E501 + + + :return: The total of this GraphqlProblemsetQuestionList. # noqa: E501 + :rtype: int + """ + return self._total + + @total.setter + def total(self, total): + """Sets the total of this GraphqlProblemsetQuestionList. + + + :param total: The total of this GraphqlProblemsetQuestionList. # noqa: E501 + :type: int + """ + + self._total = total + + @property + def questions(self): + """Gets the questions of this GraphqlProblemsetQuestionList. # noqa: E501 + + + :return: The questions of this GraphqlProblemsetQuestionList. # noqa: E501 + :rtype: list[GraphqlQuestionDetail] + """ + return self._questions + + @questions.setter + def questions(self, questions): + """Sets the questions of this GraphqlProblemsetQuestionList. + + + :param questions: The questions of this GraphqlProblemsetQuestionList. # noqa: E501 + :type: list[GraphqlQuestionDetail] + """ + + self._questions = questions + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list( + map(lambda x: x.to_dict() if hasattr(x, "to_dict") else x, value) + ) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict( + map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") + else item, + value.items(), + ) + ) + else: + result[attr] = value + if issubclass(GraphqlProblemsetQuestionList, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self) -> str: + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self) -> str: + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other: GraphqlProblemsetQuestionList) -> bool: + """Returns true if both objects are equal""" + if not isinstance(other, GraphqlProblemsetQuestionList): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other) -> bool: + """Returns true if both objects are not equal""" + return not self == other diff --git a/leetcode/models/graphql_query.py b/leetcode/models/graphql_query.py index 6d61ac1..c1b0fff 100644 --- a/leetcode/models/graphql_query.py +++ b/leetcode/models/graphql_query.py @@ -31,7 +31,7 @@ class GraphqlQuery(object): """ swagger_types = { "query": "str", - "variables": "GraphqlQueryVariables", + "variables": "AnyOfGraphqlQueryVariables", "operation_name": "str", } @@ -83,7 +83,7 @@ def variables(self): :return: The variables of this GraphqlQuery. # noqa: E501 - :rtype: GraphqlQueryVariables + :rtype: AnyOfGraphqlQueryVariables """ return self._variables @@ -93,7 +93,7 @@ def variables(self, variables): :param variables: The variables of this GraphqlQuery. # noqa: E501 - :type: GraphqlQueryVariables + :type: AnyOfGraphqlQueryVariables """ if variables is None: raise ValueError( diff --git a/leetcode/models/graphql_query_get_question_detail_variables.py b/leetcode/models/graphql_query_get_question_detail_variables.py new file mode 100644 index 0000000..015c4d7 --- /dev/null +++ b/leetcode/models/graphql_query_get_question_detail_variables.py @@ -0,0 +1,111 @@ +# coding: utf-8 + +""" + Leetcode API + + Leetcode API implementation. # noqa: E501 + + OpenAPI spec version: 1.0.1-1 + Contact: pv.safronov@gmail.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" +from __future__ import annotations + +import pprint +import re # noqa: F401 + +import six + + +class GraphqlQueryGetQuestionDetailVariables(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = {"title_slug": "str"} + + attribute_map = {"title_slug": "titleSlug"} + + def __init__(self, title_slug=None) -> None: # noqa: E501 + """GraphqlQueryGetQuestionDetailVariables - a model defined in Swagger""" # noqa: E501 + self._title_slug = None + self.discriminator = None + if title_slug is not None: + self.title_slug = title_slug + + @property + def title_slug(self): + """Gets the title_slug of this GraphqlQueryGetQuestionDetailVariables. # noqa: E501 + + + :return: The title_slug of this GraphqlQueryGetQuestionDetailVariables. # noqa: E501 + :rtype: str + """ + return self._title_slug + + @title_slug.setter + def title_slug(self, title_slug): + """Sets the title_slug of this GraphqlQueryGetQuestionDetailVariables. + + + :param title_slug: The title_slug of this GraphqlQueryGetQuestionDetailVariables. # noqa: E501 + :type: str + """ + + self._title_slug = title_slug + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list( + map(lambda x: x.to_dict() if hasattr(x, "to_dict") else x, value) + ) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict( + map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") + else item, + value.items(), + ) + ) + else: + result[attr] = value + if issubclass(GraphqlQueryGetQuestionDetailVariables, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self) -> str: + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self) -> str: + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other: GraphqlQueryGetQuestionDetailVariables) -> bool: + """Returns true if both objects are equal""" + if not isinstance(other, GraphqlQueryGetQuestionDetailVariables): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other) -> bool: + """Returns true if both objects are not equal""" + return not self == other diff --git a/leetcode/models/graphql_query_problemset_question_list_variables.py b/leetcode/models/graphql_query_problemset_question_list_variables.py new file mode 100644 index 0000000..fdd9358 --- /dev/null +++ b/leetcode/models/graphql_query_problemset_question_list_variables.py @@ -0,0 +1,195 @@ +# coding: utf-8 + +""" + Leetcode API + + Leetcode API implementation. # noqa: E501 + + OpenAPI spec version: 1.0.1-1 + Contact: pv.safronov@gmail.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" +from __future__ import annotations + +import pprint +import re # noqa: F401 + +import six + + +class GraphqlQueryProblemsetQuestionListVariables(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + "category_slug": "str", + "limit": "int", + "skip": "int", + "filters": "GraphqlQueryProblemsetQuestionListVariablesFilterInput", + } + + attribute_map = { + "category_slug": "categorySlug", + "limit": "limit", + "skip": "skip", + "filters": "filters", + } + + def __init__( + self, category_slug=None, limit=None, skip=None, filters=None + ) -> None: # noqa: E501 + """GraphqlQueryProblemsetQuestionListVariables - a model defined in Swagger""" # noqa: E501 + self._category_slug = None + self._limit = None + self._skip = None + self._filters = None + self.discriminator = None + if category_slug is not None: + self.category_slug = category_slug + if limit is not None: + self.limit = limit + if skip is not None: + self.skip = skip + if filters is not None: + self.filters = filters + + @property + def category_slug(self): + """Gets the category_slug of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + + + :return: The category_slug of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + :rtype: str + """ + return self._category_slug + + @category_slug.setter + def category_slug(self, category_slug): + """Sets the category_slug of this GraphqlQueryProblemsetQuestionListVariables. + + + :param category_slug: The category_slug of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + :type: str + """ + + self._category_slug = category_slug + + @property + def limit(self): + """Gets the limit of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + + + :return: The limit of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + :rtype: int + """ + return self._limit + + @limit.setter + def limit(self, limit): + """Sets the limit of this GraphqlQueryProblemsetQuestionListVariables. + + + :param limit: The limit of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + :type: int + """ + + self._limit = limit + + @property + def skip(self): + """Gets the skip of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + + + :return: The skip of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + :rtype: int + """ + return self._skip + + @skip.setter + def skip(self, skip): + """Sets the skip of this GraphqlQueryProblemsetQuestionListVariables. + + + :param skip: The skip of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + :type: int + """ + + self._skip = skip + + @property + def filters(self): + """Gets the filters of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + + + :return: The filters of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + :rtype: GraphqlQueryProblemsetQuestionListVariablesFilterInput + """ + return self._filters + + @filters.setter + def filters(self, filters): + """Sets the filters of this GraphqlQueryProblemsetQuestionListVariables. + + + :param filters: The filters of this GraphqlQueryProblemsetQuestionListVariables. # noqa: E501 + :type: GraphqlQueryProblemsetQuestionListVariablesFilterInput + """ + + self._filters = filters + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list( + map(lambda x: x.to_dict() if hasattr(x, "to_dict") else x, value) + ) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict( + map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") + else item, + value.items(), + ) + ) + else: + result[attr] = value + if issubclass(GraphqlQueryProblemsetQuestionListVariables, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self) -> str: + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self) -> str: + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other: GraphqlQueryProblemsetQuestionListVariables) -> bool: + """Returns true if both objects are equal""" + if not isinstance(other, GraphqlQueryProblemsetQuestionListVariables): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other) -> bool: + """Returns true if both objects are not equal""" + return not self == other diff --git a/leetcode/models/graphql_query_problemset_question_list_variables_filter_input.py b/leetcode/models/graphql_query_problemset_question_list_variables_filter_input.py new file mode 100644 index 0000000..9394bc8 --- /dev/null +++ b/leetcode/models/graphql_query_problemset_question_list_variables_filter_input.py @@ -0,0 +1,225 @@ +# coding: utf-8 + +""" + Leetcode API + + Leetcode API implementation. # noqa: E501 + + OpenAPI spec version: 1.0.1-1 + Contact: pv.safronov@gmail.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" +from __future__ import annotations + +import pprint +import re # noqa: F401 + +import six + + +class GraphqlQueryProblemsetQuestionListVariablesFilterInput(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + "tags": "list[str]", + "difficulty": "str", + "status": "str", + "list_id": "str", + "premium_only": "bool", + } + + attribute_map = { + "tags": "tags", + "difficulty": "difficulty", + "status": "status", + "list_id": "listId", + "premium_only": "premiumOnly", + } + + def __init__( + self, tags=None, difficulty=None, status=None, list_id=None, premium_only=None + ) -> None: # noqa: E501 + """GraphqlQueryProblemsetQuestionListVariablesFilterInput - a model defined in Swagger""" # noqa: E501 + self._tags = None + self._difficulty = None + self._status = None + self._list_id = None + self._premium_only = None + self.discriminator = None + if tags is not None: + self.tags = tags + if difficulty is not None: + self.difficulty = difficulty + if status is not None: + self.status = status + if list_id is not None: + self.list_id = list_id + if premium_only is not None: + self.premium_only = premium_only + + @property + def tags(self): + """Gets the tags of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + + + :return: The tags of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + :rtype: list[str] + """ + return self._tags + + @tags.setter + def tags(self, tags): + """Sets the tags of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. + + + :param tags: The tags of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + :type: list[str] + """ + + self._tags = tags + + @property + def difficulty(self): + """Gets the difficulty of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + + + :return: The difficulty of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + :rtype: str + """ + return self._difficulty + + @difficulty.setter + def difficulty(self, difficulty): + """Sets the difficulty of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. + + + :param difficulty: The difficulty of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + :type: str + """ + + self._difficulty = difficulty + + @property + def status(self): + """Gets the status of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + + + :return: The status of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + :rtype: str + """ + return self._status + + @status.setter + def status(self, status): + """Sets the status of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. + + + :param status: The status of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + :type: str + """ + + self._status = status + + @property + def list_id(self): + """Gets the list_id of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + + + :return: The list_id of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + :rtype: str + """ + return self._list_id + + @list_id.setter + def list_id(self, list_id): + """Sets the list_id of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. + + + :param list_id: The list_id of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + :type: str + """ + + self._list_id = list_id + + @property + def premium_only(self): + """Gets the premium_only of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + + + :return: The premium_only of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + :rtype: bool + """ + return self._premium_only + + @premium_only.setter + def premium_only(self, premium_only): + """Sets the premium_only of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. + + + :param premium_only: The premium_only of this GraphqlQueryProblemsetQuestionListVariablesFilterInput. # noqa: E501 + :type: bool + """ + + self._premium_only = premium_only + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list( + map(lambda x: x.to_dict() if hasattr(x, "to_dict") else x, value) + ) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict( + map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") + else item, + value.items(), + ) + ) + else: + result[attr] = value + if issubclass(GraphqlQueryProblemsetQuestionListVariablesFilterInput, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self) -> str: + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self) -> str: + """For `print` and `pprint`""" + return self.to_str() + + def __eq__( + self, other: GraphqlQueryProblemsetQuestionListVariablesFilterInput + ) -> bool: + """Returns true if both objects are equal""" + if not isinstance( + other, GraphqlQueryProblemsetQuestionListVariablesFilterInput + ): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other) -> bool: + """Returns true if both objects are not equal""" + return not self == other diff --git a/leetcode/models/graphql_query_variables.py b/leetcode/models/graphql_query_variables.py index 71ebcf5..7c61a37 100644 --- a/leetcode/models/graphql_query_variables.py +++ b/leetcode/models/graphql_query_variables.py @@ -29,37 +29,13 @@ class GraphqlQueryVariables(object): attribute_map (dict): The key is attribute name and the value is json key in definition. """ - swagger_types = {"title_slug": "str"} + swagger_types = {} - attribute_map = {"title_slug": "titleSlug"} + attribute_map = {} - def __init__(self, title_slug=None): # noqa: E501 + def __init__(self): # noqa: E501 """GraphqlQueryVariables - a model defined in Swagger""" # noqa: E501 - self._title_slug = None self.discriminator = None - if title_slug is not None: - self.title_slug = title_slug - - @property - def title_slug(self): - """Gets the title_slug of this GraphqlQueryVariables. # noqa: E501 - - - :return: The title_slug of this GraphqlQueryVariables. # noqa: E501 - :rtype: str - """ - return self._title_slug - - @title_slug.setter - def title_slug(self, title_slug): - """Sets the title_slug of this GraphqlQueryVariables. - - - :param title_slug: The title_slug of this GraphqlQueryVariables. # noqa: E501 - :type: str - """ - - self._title_slug = title_slug def to_dict(self): """Returns the model properties as a dict""" diff --git a/leetcode/models/graphql_question_solution.py b/leetcode/models/graphql_question_solution.py index 56d9f53..c8089a5 100644 --- a/leetcode/models/graphql_question_solution.py +++ b/leetcode/models/graphql_question_solution.py @@ -38,7 +38,9 @@ class GraphqlQuestionSolution(object): "typename": "__typename", } - def __init__(self, id=None, can_see_detail=None, typename=None) -> None: # noqa: E501 + def __init__( + self, id=None, can_see_detail=None, typename=None + ) -> None: # noqa: E501 """GraphqlQuestionSolution - a model defined in Swagger""" # noqa: E501 self._id = None self._can_see_detail = None diff --git a/leetcode/models/graphql_user.py b/leetcode/models/graphql_user.py index 0c98fd3..6bd0173 100644 --- a/leetcode/models/graphql_user.py +++ b/leetcode/models/graphql_user.py @@ -37,7 +37,9 @@ class GraphqlUser(object): "is_current_user_premium": "isCurrentUserPremium", } - def __init__(self, username=None, is_current_user_premium=None) -> None: # noqa: E501 + def __init__( + self, username=None, is_current_user_premium=None + ) -> None: # noqa: E501 """GraphqlUser - a model defined in Swagger""" # noqa: E501 self._username = None self._is_current_user_premium = None diff --git a/setup.py b/setup.py index a57af48..79bf053 100644 --- a/setup.py +++ b/setup.py @@ -10,10 +10,11 @@ Generated by: https://github.com/swagger-api/swagger-codegen.git """ from __future__ import annotations + from setuptools import find_packages, setup # noqa: H301 NAME = "python-leetcode" -VERSION = "1.0.10" +VERSION = "1.1.0" with open("README.md") as readme: DESCRIPTION: str = readme.read() diff --git a/test/test_any_of_graphql_query_variables.py b/test/test_any_of_graphql_query_variables.py new file mode 100644 index 0000000..afcd76e --- /dev/null +++ b/test/test_any_of_graphql_query_variables.py @@ -0,0 +1,41 @@ +# coding: utf-8 + +""" + Leetcode API + + Leetcode API implementation. # noqa: E501 + + OpenAPI spec version: 1.0.1-1 + Contact: pv.safronov@gmail.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +from __future__ import absolute_import, annotations + +import unittest + +import leetcode +from leetcode.models.any_of_graphql_query_variables import ( # noqa: E501 + AnyOfGraphqlQueryVariables, +) +from leetcode.rest import ApiException + + +class TestAnyOfGraphqlQueryVariables(unittest.TestCase): + """AnyOfGraphqlQueryVariables unit test stubs""" + + def setUp(self) -> None: + pass + + def tearDown(self) -> None: + pass + + def testAnyOfGraphqlQueryVariables(self) -> None: + """Test AnyOfGraphqlQueryVariables""" + # FIXME: construct object with mandatory attributes with example values + # model = leetcode.models.any_of_graphql_query_variables.AnyOfGraphqlQueryVariables() # noqa: E501 + pass + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_any_of_graphql_question_detail_solution.py b/test/test_any_of_graphql_question_detail_solution.py index 2b0f0c9..1c6952d 100644 --- a/test/test_any_of_graphql_question_detail_solution.py +++ b/test/test_any_of_graphql_question_detail_solution.py @@ -10,7 +10,7 @@ Generated by: https://github.com/swagger-api/swagger-codegen.git """ -from __future__ import annotations, absolute_import +from __future__ import absolute_import, annotations import unittest diff --git a/test/test_graphql_data.py b/test/test_graphql_data.py index 35c4ac5..d1dfb3a 100644 --- a/test/test_graphql_data.py +++ b/test/test_graphql_data.py @@ -10,7 +10,7 @@ Generated by: https://github.com/swagger-api/swagger-codegen.git """ -from __future__ import annotations, absolute_import +from __future__ import absolute_import, annotations import unittest diff --git a/test/test_graphql_problemset_question_list.py b/test/test_graphql_problemset_question_list.py new file mode 100644 index 0000000..ebb882f --- /dev/null +++ b/test/test_graphql_problemset_question_list.py @@ -0,0 +1,41 @@ +# coding: utf-8 + +""" + Leetcode API + + Leetcode API implementation. # noqa: E501 + + OpenAPI spec version: 1.0.1-1 + Contact: pv.safronov@gmail.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +from __future__ import absolute_import, annotations + +import unittest + +import leetcode +from leetcode.models.graphql_problemset_question_list import ( # noqa: E501 + GraphqlProblemsetQuestionList, +) +from leetcode.rest import ApiException + + +class TestGraphqlProblemsetQuestionList(unittest.TestCase): + """GraphqlProblemsetQuestionList unit test stubs""" + + def setUp(self) -> None: + pass + + def tearDown(self) -> None: + pass + + def testGraphqlProblemsetQuestionList(self) -> None: + """Test GraphqlProblemsetQuestionList""" + # FIXME: construct object with mandatory attributes with example values + # model = leetcode.models.graphql_problemset_question_list.GraphqlProblemsetQuestionList() # noqa: E501 + pass + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_graphql_query_get_question_detail_variables.py b/test/test_graphql_query_get_question_detail_variables.py new file mode 100644 index 0000000..710e8d5 --- /dev/null +++ b/test/test_graphql_query_get_question_detail_variables.py @@ -0,0 +1,41 @@ +# coding: utf-8 + +""" + Leetcode API + + Leetcode API implementation. # noqa: E501 + + OpenAPI spec version: 1.0.1-1 + Contact: pv.safronov@gmail.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +from __future__ import absolute_import, annotations + +import unittest + +import leetcode +from leetcode.models.graphql_query_get_question_detail_variables import ( # noqa: E501 + GraphqlQueryGetQuestionDetailVariables, +) +from leetcode.rest import ApiException + + +class TestGraphqlQueryGetQuestionDetailVariables(unittest.TestCase): + """GraphqlQueryGetQuestionDetailVariables unit test stubs""" + + def setUp(self) -> None: + pass + + def tearDown(self) -> None: + pass + + def testGraphqlQueryGetQuestionDetailVariables(self) -> None: + """Test GraphqlQueryGetQuestionDetailVariables""" + # FIXME: construct object with mandatory attributes with example values + # model = leetcode.models.graphql_query_get_question_detail_variables.GraphqlQueryGetQuestionDetailVariables() # noqa: E501 + pass + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_graphql_query_problemset_question_list_variables.py b/test/test_graphql_query_problemset_question_list_variables.py new file mode 100644 index 0000000..c99f4e9 --- /dev/null +++ b/test/test_graphql_query_problemset_question_list_variables.py @@ -0,0 +1,41 @@ +# coding: utf-8 + +""" + Leetcode API + + Leetcode API implementation. # noqa: E501 + + OpenAPI spec version: 1.0.1-1 + Contact: pv.safronov@gmail.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +from __future__ import absolute_import, annotations + +import unittest + +import leetcode +from leetcode.models.graphql_query_problemset_question_list_variables import ( # noqa: E501 + GraphqlQueryProblemsetQuestionListVariables, +) +from leetcode.rest import ApiException + + +class TestGraphqlQueryProblemsetQuestionListVariables(unittest.TestCase): + """GraphqlQueryProblemsetQuestionListVariables unit test stubs""" + + def setUp(self) -> None: + pass + + def tearDown(self) -> None: + pass + + def testGraphqlQueryProblemsetQuestionListVariables(self) -> None: + """Test GraphqlQueryProblemsetQuestionListVariables""" + # FIXME: construct object with mandatory attributes with example values + # model = leetcode.models.graphql_query_problemset_question_list_variables.GraphqlQueryProblemsetQuestionListVariables() # noqa: E501 + pass + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_graphql_query_problemset_question_list_variables_filter_input.py b/test/test_graphql_query_problemset_question_list_variables_filter_input.py new file mode 100644 index 0000000..40440f3 --- /dev/null +++ b/test/test_graphql_query_problemset_question_list_variables_filter_input.py @@ -0,0 +1,41 @@ +# coding: utf-8 + +""" + Leetcode API + + Leetcode API implementation. # noqa: E501 + + OpenAPI spec version: 1.0.1-1 + Contact: pv.safronov@gmail.com + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +from __future__ import absolute_import, annotations + +import unittest + +import leetcode +from leetcode.models.graphql_query_problemset_question_list_variables_filter_input import ( # noqa: E501 + GraphqlQueryProblemsetQuestionListVariablesFilterInput, +) +from leetcode.rest import ApiException + + +class TestGraphqlQueryProblemsetQuestionListVariablesFilterInput(unittest.TestCase): + """GraphqlQueryProblemsetQuestionListVariablesFilterInput unit test stubs""" + + def setUp(self) -> None: + pass + + def tearDown(self) -> None: + pass + + def testGraphqlQueryProblemsetQuestionListVariablesFilterInput(self) -> None: + """Test GraphqlQueryProblemsetQuestionListVariablesFilterInput""" + # FIXME: construct object with mandatory attributes with example values + # model = leetcode.models.graphql_query_problemset_question_list_variables_filter_input.GraphqlQueryProblemsetQuestionListVariablesFilterInput() # noqa: E501 + pass + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_graphql_question_code_snippet.py b/test/test_graphql_question_code_snippet.py index 71638c5..5116b4b 100644 --- a/test/test_graphql_question_code_snippet.py +++ b/test/test_graphql_question_code_snippet.py @@ -10,7 +10,7 @@ Generated by: https://github.com/swagger-api/swagger-codegen.git """ -from __future__ import annotations, absolute_import +from __future__ import absolute_import, annotations import unittest diff --git a/test/test_graphql_question_contributor.py b/test/test_graphql_question_contributor.py index 5b2e60a..4b0843e 100644 --- a/test/test_graphql_question_contributor.py +++ b/test/test_graphql_question_contributor.py @@ -10,7 +10,7 @@ Generated by: https://github.com/swagger-api/swagger-codegen.git """ -from __future__ import annotations, absolute_import +from __future__ import absolute_import, annotations import unittest diff --git a/test/test_graphql_question_solution.py b/test/test_graphql_question_solution.py index 5667853..6262508 100644 --- a/test/test_graphql_question_solution.py +++ b/test/test_graphql_question_solution.py @@ -10,7 +10,7 @@ Generated by: https://github.com/swagger-api/swagger-codegen.git """ -from __future__ import annotations, absolute_import +from __future__ import absolute_import, annotations import unittest diff --git a/test/test_graphql_question_topic_tag.py b/test/test_graphql_question_topic_tag.py index 9884de0..125e2d3 100644 --- a/test/test_graphql_question_topic_tag.py +++ b/test/test_graphql_question_topic_tag.py @@ -10,7 +10,7 @@ Generated by: https://github.com/swagger-api/swagger-codegen.git """ -from __future__ import annotations, absolute_import +from __future__ import absolute_import, annotations import unittest diff --git a/test/test_graphql_request_get_question_detail.py b/test/test_graphql_request_get_question_detail.py index 2c0991e..088893e 100644 --- a/test/test_graphql_request_get_question_detail.py +++ b/test/test_graphql_request_get_question_detail.py @@ -2,7 +2,9 @@ import test.base from leetcode.models.graphql_query import GraphqlQuery -from leetcode.models.graphql_query_variables import GraphqlQueryVariables +from leetcode.models.graphql_query_get_question_detail_variables import ( + GraphqlQueryGetQuestionDetailVariables, +) from leetcode.models.graphql_question_code_snippet import GraphqlQuestionCodeSnippet from leetcode.models.graphql_question_topic_tag import GraphqlQuestionTopicTag @@ -73,7 +75,7 @@ def test_request(self) -> None: } } """, - variables=GraphqlQueryVariables(title_slug="two-sum"), + variables=GraphqlQueryGetQuestionDetailVariables(title_slug="two-sum"), operation_name="getQuestionDetail", ) @@ -83,6 +85,10 @@ def test_request(self) -> None: assert data + problemset_question_list = data.problemset_question_list + + assert problemset_question_list is None + question = data.question user = data.user diff --git a/test/test_graphql_request_problemset_question_list.py b/test/test_graphql_request_problemset_question_list.py new file mode 100644 index 0000000..86ef410 --- /dev/null +++ b/test/test_graphql_request_problemset_question_list.py @@ -0,0 +1,210 @@ +import json +import test.base + +from leetcode.models.graphql_query import GraphqlQuery +from leetcode.models.graphql_query_problemset_question_list_variables import ( + GraphqlQueryProblemsetQuestionListVariables, +) +from leetcode.models.graphql_query_problemset_question_list_variables_filter_input import ( + GraphqlQueryProblemsetQuestionListVariablesFilterInput, +) +from leetcode.models.graphql_question_code_snippet import GraphqlQuestionCodeSnippet +from leetcode.models.graphql_question_topic_tag import GraphqlQuestionTopicTag + + +class TestGraphqlGetQuestionDetail(test.base.BaseTest): + def test_request(self) -> None: + graphql_request = GraphqlQuery( + query=""" + query problemsetQuestionList($categorySlug: String, $limit: Int, $skip: Int, $filters: QuestionListFilterInput) { + problemsetQuestionList: questionList( + categorySlug: $categorySlug + limit: $limit + skip: $skip + filters: $filters + ) { + total: totalNum + questions: data { + questionId + questionFrontendId + boundTopicId + title + frequency + freqBar + content + translatedTitle + isPaidOnly + difficulty + likes + dislikes + isLiked + isFavor + similarQuestions + contributors { + username + profileUrl + avatarUrl + __typename + } + langToValidPlayground + topicTags { + name + slug + translatedName + __typename + } + companyTagStats + codeSnippets { + lang + langSlug + code + __typename + } + stats + acRate + codeDefinition + hints + solution { + id + canSeeDetail + __typename + } + hasSolution + hasVideoSolution + status + sampleTestCase + enableRunCode + metaData + translatedContent + judgerAvailable + judgeType + mysqlSchemas + enableTestMode + envInfo + __typename + } + } + } + """, + variables=GraphqlQueryProblemsetQuestionListVariables( + category_slug="algorithms", + limit=1, + skip=2, + filters=GraphqlQueryProblemsetQuestionListVariablesFilterInput( + tags=["array"], + difficulty="MEDIUM", + status="NOT_STARTED", + list_id="7p5x763", # Top Amazon Questions + premium_only=False, + ), + ), + operation_name="problemsetQuestionList", + ) + + response = self._api_instance.graphql_post(body=graphql_request) + + data = response.data + + question = data.question + + assert question is None + + assert data + + assert data.problemset_question_list.total > 0 + + question_list = data.problemset_question_list.questions + user = data.user + + question = question_list[0] + + assert user is None + + assert question.question_id is not None + assert question.question_frontend_id is not None + assert question.bound_topic_id is None + assert question.title is not None + assert question.frequency == 0.0 + assert question.freq_bar > 0 + assert len(question.content) > 10 + assert question.translated_title is None + assert question.is_paid_only in (True, False) + assert question.difficulty == "Medium" + assert question.likes > 0 + assert question.dislikes > 0 + assert question.is_liked is None + assert question.is_favor in (True, False) + + json.loads(question.similar_questions) + + assert len(question.contributors) == 0 + assert "python" in list(json.loads(question.lang_to_valid_playground).keys()) + topic_tag = question.topic_tags[0] + assert isinstance(topic_tag, GraphqlQuestionTopicTag) + assert len(topic_tag.name) > 0 + assert len(topic_tag.slug) > 0 + assert question.topic_tags[0].translated_name is None + assert len(topic_tag.typename) > 0 + + tag_stat = list(json.loads(question.company_tag_stats).values())[0][0] + + assert tag_stat["taggedByAdmin"] in (True, False) + assert len(tag_stat["name"]) > 0 + assert len(tag_stat["slug"]) > 0 + assert tag_stat["timesEncountered"] > 0 + + code_snippet = question.code_snippets[0] + + assert isinstance(code_snippet, GraphqlQuestionCodeSnippet) + assert len(code_snippet.code) > 0 + assert len(code_snippet.lang) > 0 + assert len(code_snippet.lang_slug) > 0 + assert code_snippet.typename == "CodeSnippetNode" + + stats = json.loads(question.stats) + + assert len(stats["totalAccepted"]) > 0 + assert len(stats["totalSubmission"]) > 0 + assert int(stats["totalAcceptedRaw"]) > 0 + assert int(stats["totalSubmissionRaw"]) > 0 + + assert question.ac_rate > 0 + + code_definition = json.loads(question.code_definition)[0] + + assert len(code_definition["value"]) > 0 + assert len(code_definition["text"]) > 0 + assert len(code_definition["defaultCode"]) > 0 + + assert [len(hint) > 0 for hint in question.hints] + + question.solution + + assert question.has_solution in (True, False) + assert question.has_video_solution in (True, False) + + assert question.status in ("ac", "not_started", "tried", None) + + assert len(question.sample_test_case) > 0 + + assert question.enable_run_code in (True, False) + + meta_data = json.loads(question.meta_data) + + assert meta_data["name"] is not None + assert meta_data["params"][0]["name"] + assert meta_data["params"][0]["type"] + assert meta_data["return"]["type"] + + assert question.translated_content is None + + assert question.judger_available is True + assert question.judge_type in ("large", "small") + + assert question.mysql_schemas == [] + + assert question.enable_test_mode in (True, False) + + env_info = json.loads(question.env_info) + + assert env_info["cpp"][0] == "C++" diff --git a/test/test_graphql_request_user.py b/test/test_graphql_request_user.py index 0d19102..8ddbc8f 100644 --- a/test/test_graphql_request_user.py +++ b/test/test_graphql_request_user.py @@ -1,7 +1,7 @@ import json import test.base -import leetcode +import leetcode.models.graphql_query_variables class TestGraphqlGetUser(test.base.BaseTest): @@ -15,7 +15,7 @@ def test_request(self) -> None: } } """, - variables=leetcode.GraphqlQueryVariables(), + variables=leetcode.models.graphql_query_variables.GraphqlQueryVariables(), operation_name="", ) diff --git a/test/test_graphql_user.py b/test/test_graphql_user.py index 9e07da2..856a5c1 100644 --- a/test/test_graphql_user.py +++ b/test/test_graphql_user.py @@ -10,7 +10,7 @@ Generated by: https://github.com/swagger-api/swagger-codegen.git """ -from __future__ import annotations, absolute_import +from __future__ import absolute_import, annotations import unittest