Skip to content

Commit cac8c11

Browse files
authored
Merge pull request #12 from prius/dev
Fix pyre type errors
2 parents c004f10 + a040ff0 commit cac8c11

File tree

3 files changed

+48
-15
lines changed

3 files changed

+48
-15
lines changed

example.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
1+
import os
12
import sys
23
from time import sleep
34

4-
from cookies import cookies
5-
65
import leetcode
6+
import leetcode.auth
77

88
# Initialize client
99
configuration = leetcode.Configuration()
1010

1111
# NOTE: cookies var is just a dict with `csrftoken` and `LEETCODE_SESSION`
1212
# fields which contain corresponding cookies from web browser
13-
configuration.api_key["x-csrftoken"] = cookies["csrftoken"]
14-
configuration.api_key["csrftoken"] = cookies["csrftoken"]
15-
configuration.api_key["LEETCODE_SESSION"] = cookies["LEETCODE_SESSION"]
13+
leetcode_session = os.environ["LEETCODE_SESSION_ID"]
14+
15+
csrf_token = leetcode.auth.get_csrf_cookie(leetcode_session)
16+
17+
configuration.api_key["x-csrftoken"] = csrf_token
18+
configuration.api_key["csrftoken"] = csrf_token
19+
configuration.api_key["LEETCODE_SESSION"] = leetcode_session
1620
configuration.api_key["Referer"] = "https://leetcode.com"
1721
configuration.debug = False
1822

test/base.py

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,35 @@
11
import os
2+
from typing import Optional
23

3-
import leetcode
4+
import leetcode.api.default_api
5+
import leetcode.api_client
46
import leetcode.auth
7+
import leetcode.configuration
58

69

710
class BaseTest:
11+
_api_instance_containter: Optional[leetcode.api.default_api.DefaultApi] = None
12+
13+
@property
14+
def _api_instance(self) -> leetcode.api.default_api.DefaultApi:
15+
api_instance = self._api_instance_containter
16+
17+
if api_instance is None:
18+
raise RuntimeError("Api instance is not initialized")
19+
20+
return api_instance
21+
22+
@_api_instance.setter
23+
def _api_instance(
24+
self, value: Optional[leetcode.api.default_api.DefaultApi]
25+
) -> None:
26+
self._api_instance_containter = value
27+
828
def setup(self) -> None:
929
session_id = os.environ["LEETCODE_SESSION_ID"]
1030
csrftoken = leetcode.auth.get_csrf_cookie(session_id)
1131

12-
configuration = leetcode.Configuration()
32+
configuration = leetcode.configuration.Configuration()
1333

1434
configuration.api_key["x-csrftoken"] = csrftoken
1535
configuration.api_key["csrftoken"] = csrftoken
@@ -18,7 +38,13 @@ def setup(self) -> None:
1838

1939
configuration.debug = False
2040

21-
self._api_instance = leetcode.DefaultApi(leetcode.ApiClient(configuration))
41+
self._api_instance = leetcode.api.default_api.DefaultApi(
42+
leetcode.api_client.ApiClient(configuration)
43+
)
2244

2345
def teardown(self) -> None:
24-
pass
46+
api_instance = self._api_instance
47+
48+
del api_instance
49+
50+
self._api_instance = None

test/test_graphql_request_get_question_detail.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
import json
22
import test.base
33

4-
import leetcode
4+
from leetcode.models.graphql_query import GraphqlQuery
5+
from leetcode.models.graphql_query_variables import GraphqlQueryVariables
6+
from leetcode.models.graphql_question_code_snippet import GraphqlQuestionCodeSnippet
7+
from leetcode.models.graphql_question_topic_tag import GraphqlQuestionTopicTag
58

69

710
class TestGraphqlGetQuestionDetail(test.base.BaseTest):
811
def test_request(self) -> None:
9-
graphql_request = leetcode.GraphqlQuery(
12+
graphql_request = GraphqlQuery(
1013
query="""
1114
query getQuestionDetail($titleSlug: String!) {
1215
question(titleSlug: $titleSlug) {
@@ -70,7 +73,7 @@ def test_request(self) -> None:
7073
}
7174
}
7275
""",
73-
variables=leetcode.GraphqlQueryVariables(title_slug="two-sum"),
76+
variables=GraphqlQueryVariables(title_slug="two-sum"),
7477
operation_name="getQuestionDetail",
7578
)
7679

@@ -107,7 +110,7 @@ def test_request(self) -> None:
107110
assert len(question.contributors) == 0
108111
assert "python" in list(json.loads(question.lang_to_valid_playground).keys())
109112
topic_tag = question.topic_tags[0]
110-
assert isinstance(topic_tag, leetcode.GraphqlQuestionTopicTag)
113+
assert isinstance(topic_tag, GraphqlQuestionTopicTag)
111114
assert len(topic_tag.name) > 0
112115
assert len(topic_tag.slug) > 0
113116
assert question.topic_tags[0].translated_name is None
@@ -122,7 +125,7 @@ def test_request(self) -> None:
122125

123126
code_snippet = question.code_snippets[0]
124127

125-
assert isinstance(code_snippet, leetcode.GraphqlQuestionCodeSnippet)
128+
assert isinstance(code_snippet, GraphqlQuestionCodeSnippet)
126129
assert len(code_snippet.code) > 0
127130
assert len(code_snippet.lang) > 0
128131
assert len(code_snippet.lang_slug) > 0
@@ -148,7 +151,7 @@ def test_request(self) -> None:
148151
solution = question.solution
149152

150153
# FIXME: this check doesn't work with swagger generated code
151-
# assert isinstance(solution, leetcode.GraphqlQuestionSolution)
154+
# assert isinstance(solution, GraphqlQuestionSolution)
152155

153156
# FIXME: swagger generates the code which returns dict
154157
assert solution["__typename"] == "ArticleNode"

0 commit comments

Comments
 (0)