Skip to content

Commit 97a429b

Browse files
committed
ypd tests
1 parent ccff95b commit 97a429b

13 files changed

+51
-44
lines changed

src/python_rucaptcha/TikTokCaptcha.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def __init__(
2121
raise DeprecationWarning("This method is temporarily not supported.".upper())
2222
super().__init__(method=method, *args, **kwargs)
2323

24-
self.post_payload.update(
24+
self.create_task_payload["task"].update(
2525
{
2626
"pageurl": pageurl,
2727
"cookies": cookies,

src/python_rucaptcha/audio_captcha.py

+14-14
Original file line numberDiff line numberDiff line change
@@ -121,20 +121,20 @@ def captcha_handler(
121121
try:
122122
content = self.url_open(url=captcha_link, **kwargs).content
123123
except Exception as error:
124-
self.result.error = True
125-
self.result.errorBody = str(error)
126-
return self.result.dict()
124+
self.result.errorId = 12
125+
self.result.errorCode = self.NO_CAPTCHA_ERR
126+
self.result.errorDescription = str(error)
127+
return self.result.to_dict()
127128

128129
# according to the value of the passed parameter, select the function to save the file
129130
if self.save_format == SaveFormatsEnm.CONST.value:
130131
self._file_const_saver(content, self.audio_path, file_extension="mp3")
131132
self.create_task_payload["task"].update({"body": base64.b64encode(content).decode("utf-8")})
132133

133134
else:
134-
# if none of the parameters are passed
135-
self.result.error = True
136-
self.result.errorBody = self.NO_CAPTCHA_ERR
137-
return self.result.dict()
135+
self.result.errorId = 12
136+
self.result.errorCode = self.NO_CAPTCHA_ERR
137+
return self.result.to_dict()
138138

139139
return self._processing_response(**kwargs)
140140

@@ -173,20 +173,20 @@ async def aio_captcha_handler(
173173
try:
174174
content = await self.aio_url_read(url=captcha_link, **kwargs)
175175
except Exception as error:
176-
self.result.error = True
177-
self.result.errorBody = str(error)
178-
return self.result.dict()
176+
self.result.errorId = 12
177+
self.result.errorCode = self.NO_CAPTCHA_ERR
178+
self.result.errorDescription = str(error)
179+
return self.result.to_dict()
179180

180181
# according to the value of the passed parameter, select the function to save the file
181182
if self.save_format == SaveFormatsEnm.CONST.value:
182183
self._file_const_saver(content, self.audio_path, file_extension="mp3")
183184
self.create_task_payload["task"].update({"body": base64.b64encode(content).decode("utf-8")})
184185

185186
else:
186-
# if none of the parameters are passed
187-
self.result.error = True
188-
self.result.errorBody = self.NO_CAPTCHA_ERR
189-
return self.result.dict()
187+
self.result.errorId = 12
188+
self.result.errorCode = self.NO_CAPTCHA_ERR
189+
return self.result.to_dict()
190190

191191
return await self._aio_processing_response()
192192

src/python_rucaptcha/capy_puzzle.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def __init__(self, pageurl: str, captchakey: str, method: str = CapyPuzzleEnm.CA
7676
"""
7777
super().__init__(method=method, *args, **kwargs)
7878

79-
self.post_payload.update({"captchakey": captchakey, "pageurl": pageurl})
79+
self.create_task_payload["task"].update({"captchakey": captchakey, "pageurl": pageurl})
8080

8181
# check user params
8282
if method not in CapyPuzzleEnm.list_values():

src/python_rucaptcha/fun_captcha.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def __init__(self, pageurl: str, publickey: str, method: str = FunCaptchaEnm.FUN
3535
"""
3636
super().__init__(method=method, *args, **kwargs)
3737

38-
self.post_payload.update({"publickey": publickey, "pageurl": pageurl})
38+
self.create_task_payload["task"].update({"publickey": publickey, "pageurl": pageurl})
3939

4040
# check user params
4141
if method not in FunCaptchaEnm.list_values():

src/python_rucaptcha/gee_test.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ def __init__(
130130
raise ValueError(f"Invalid method parameter set, available - {GeetestEnm.list_values()}")
131131

132132
# insert `gt` param to payload
133-
self.post_payload.update({"gt": gt, "pageurl": pageurl, "captcha_id": captcha_id})
133+
self.create_task_payload["task"].update({"gt": gt, "pageurl": pageurl, "captcha_id": captcha_id})
134134

135135
if self.method == GeetestEnm.GEETEST_V4.value and captcha_id is None:
136136
raise ValueError(f"For {self.method} captcha_id is required")
@@ -190,7 +190,7 @@ def captcha_handler(self, challenge: Optional[str] = None, **kwargs) -> dict:
190190
"""
191191
if self.method == GeetestEnm.GEETEST.value:
192192
if challenge is not None:
193-
self.post_payload.update({"challenge": challenge})
193+
self.create_task_payload["task"].update({"challenge": challenge})
194194
else:
195195
raise ValueError(f"For {self.method} challenge is required")
196196

@@ -248,7 +248,7 @@ async def aio_captcha_handler(self, challenge: Optional[str] = None) -> dict:
248248
"""
249249
if self.method == GeetestEnm.GEETEST.value:
250250
if challenge is not None:
251-
self.post_payload.update({"challenge": challenge})
251+
self.create_task_payload["task"].update({"challenge": challenge})
252252
else:
253253
raise ValueError(f"For {self.method} challenge is required")
254254

src/python_rucaptcha/hcaptcha.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def __init__(
8282
"""
8383
super().__init__(method=method, *args, **kwargs)
8484

85-
self.post_payload.update({"pageurl": pageurl, "sitekey": sitekey})
85+
self.create_task_payload["task"].update({"pageurl": pageurl, "sitekey": sitekey})
8686

8787
# check user params
8888
if method not in HCaptchaEnm.list_values():

src/python_rucaptcha/image_captcha.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,8 @@ def captcha_handler(
215215
content = self.url_open(url=captcha_link, **kwargs).content
216216
except Exception as error:
217217
self.result.errorId = 12
218-
self.result.solution = {"text": str(error)}
218+
self.result.errorCode = self.NO_CAPTCHA_ERR
219+
self.result.errorDescription = str(error)
219220
return self.result.to_dict()
220221

221222
# according to the value of the passed parameter, select the function to save the image
@@ -226,7 +227,7 @@ def captcha_handler(
226227
else:
227228
# if none of the parameters are passed
228229
self.result.errorId = 12
229-
self.result.solution = {"text": "No captcha send"}
230+
self.result.errorCode = self.NO_CAPTCHA_ERR
230231
return self.result.to_dict()
231232

232233
return self._processing_response(**kwargs)
@@ -267,7 +268,8 @@ async def aio_captcha_handler(
267268
content = await self.aio_url_read(url=captcha_link, **kwargs)
268269
except Exception as error:
269270
self.result.errorId = 12
270-
self.result.solution = {"text": str(error)}
271+
self.result.errorCode = self.NO_CAPTCHA_ERR
272+
self.result.errorDescription = str(error)
271273
return self.result.to_dict()
272274

273275
# according to the value of the passed parameter, select the function to save the image
@@ -276,9 +278,8 @@ async def aio_captcha_handler(
276278
self.create_task_payload["task"].update({"body": base64.b64encode(content).decode("utf-8")})
277279

278280
else:
279-
# if none of the parameters are passed
280281
self.result.errorId = 12
281-
self.result.solution = {"text": "No captcha send"}
282+
self.result.errorCode = self.NO_CAPTCHA_ERR
282283
return self.result.to_dict()
283284

284285
return await self._aio_processing_response()

src/python_rucaptcha/key_captcha.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def __init__(
6666
"""
6767
super().__init__(method=method, *args, **kwargs)
6868

69-
self.post_payload.update(
69+
self.create_task_payload["task"].update(
7070
{
7171
"pageurl": pageurl,
7272
"s_s_c_user_id": s_s_c_user_id,

src/python_rucaptcha/lemin_cropped_captcha.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def __init__(
6666
"""
6767
super().__init__(method=method, *args, **kwargs)
6868

69-
self.post_payload.update({"pageurl": pageurl, "captcha_id": captcha_id, "div_id": div_id})
69+
self.create_task_payload["task"].update({"pageurl": pageurl, "captcha_id": captcha_id, "div_id": div_id})
7070

7171
# check user params
7272
if method not in LeminCroppedCaptchaEnm.list_values():

src/python_rucaptcha/re_captcha.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ def __init__(
115115
"""
116116
super().__init__(method=method, *args, **kwargs)
117117

118-
self.post_payload.update({"googlekey": googlekey, "pageurl": pageurl, "version": version})
118+
self.create_task_payload["task"].update({"googlekey": googlekey, "pageurl": pageurl, "version": version})
119119

120120
# check user params
121121
if method not in ReCaptchaEnm.list_values():

src/python_rucaptcha/rotate_captcha.py

+16-10
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from .core.base import BaseCaptcha
55
from .core.enums import RotateCaptchaEnm
6+
from .core.serializer import GetTaskResultResponseSer
67

78

89
class RotateCaptcha(BaseCaptcha):
@@ -78,6 +79,7 @@ def __init__(self, method: str = RotateCaptchaEnm.ROTATECAPTCHA.value, *args, **
7879
"""
7980
super().__init__(method=method, *args, **kwargs)
8081

82+
self.result = GetTaskResultResponseSer()
8183
# check user params
8284
if method not in RotateCaptchaEnm.list_values():
8385
raise ValueError(f"Invalid method parameter set, available - {RotateCaptchaEnm.list_values()}")
@@ -117,25 +119,27 @@ def captcha_handler(
117119

118120
# if a local file link is passed
119121
if captcha_file:
120-
self.post_payload.update({"body": base64.b64encode(self._local_file_captcha(captcha_file)).decode("utf-8")})
122+
self.create_task_payload["task"].update(
123+
{"body": base64.b64encode(self._local_file_captcha(captcha_file)).decode("utf-8")}
124+
)
121125
# if the file is transferred in base64 encoding
122126
elif captcha_base64:
123-
self.post_payload.update({"body": base64.b64encode(captcha_base64).decode("utf-8")})
127+
self.create_task_payload["task"].update({"body": base64.b64encode(captcha_base64).decode("utf-8")})
124128
# if a URL is passed
125129
elif captcha_link:
126130
try:
127131
content = self.url_open(url=captcha_link, **kwargs).content
128-
self.post_payload.update({"body": base64.b64encode(content).decode("utf-8")})
132+
self.create_task_payload["task"].update({"body": base64.b64encode(content).decode("utf-8")})
129133
except Exception as error:
130134
self.result.error = True
131135
self.result.errorBody = str(error)
132-
return self.result.dict()
136+
return self.result.to_dict()
133137

134138
else:
135139
# if none of the parameters are passed
136140
self.result.error = True
137141
self.result.errorBody = self.NO_CAPTCHA_ERR
138-
return self.result.dict()
142+
return self.result.to_dict()
139143
return self._processing_response(**kwargs)
140144

141145
async def aio_captcha_handler(
@@ -173,24 +177,26 @@ async def aio_captcha_handler(
173177

174178
# if a local file link is passed
175179
if captcha_file:
176-
self.post_payload.update({"body": base64.b64encode(self._local_file_captcha(captcha_file)).decode("utf-8")})
180+
self.create_task_payload["task"].update(
181+
{"body": base64.b64encode(self._local_file_captcha(captcha_file)).decode("utf-8")}
182+
)
177183
# if the file is transferred in base64 encoding
178184
elif captcha_base64:
179-
self.post_payload.update({"body": base64.b64encode(captcha_base64).decode("utf-8")})
185+
self.create_task_payload["task"].update({"body": base64.b64encode(captcha_base64).decode("utf-8")})
180186
# if a URL is passed
181187
elif captcha_link:
182188
try:
183189
content = await self.aio_url_read(url=captcha_link, **kwargs)
184-
self.post_payload.update({"body": base64.b64encode(content).decode("utf-8")})
190+
self.create_task_payload["task"].update({"body": base64.b64encode(content).decode("utf-8")})
185191
except Exception as error:
186192
self.result.error = True
187193
self.result.errorBody = str(error)
188-
return self.result.dict()
194+
return self.result.to_dict()
189195

190196
else:
191197
# if none of the parameters are passed
192198
self.result.error = True
193199
self.result.errorBody = self.NO_CAPTCHA_ERR
194-
return self.result.dict()
200+
return self.result.to_dict()
195201

196202
return await self._aio_processing_response()

src/python_rucaptcha/yandex_smart_captcha.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def __init__(self, pageurl: str, sitekey: str, method: str = YandexSmartCaptchaE
6969
"""
7070
super().__init__(method=method, *args, **kwargs)
7171

72-
self.post_payload.update({"sitekey": sitekey, "pageurl": pageurl})
72+
self.create_task_payload["task"].update({"sitekey": sitekey, "pageurl": pageurl})
7373

7474
# check user params
7575
if method not in YandexSmartCaptchaEnm.list_values():

tests/test_image.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ def test_no_captcha(self):
150150
result = instance.captcha_handler()
151151
assert isinstance(result, dict) is True
152152
assert result["errorId"] == 12
153-
assert isinstance(result["solution"]["text"], str) is True
153+
assert isinstance(result["errorCode"], str) is True
154154
assert result.keys() == GetTaskResultResponseSer().to_dict().keys()
155155

156156
@pytest.mark.asyncio
@@ -159,15 +159,15 @@ async def test_aio_no_captcha(self):
159159
result = await instance.aio_captcha_handler()
160160
assert isinstance(result, dict) is True
161161
assert result["errorId"] == 12
162-
assert isinstance(result["solution"]["text"], str) is True
162+
assert isinstance(result["errorCode"], str) is True
163163
assert result.keys() == GetTaskResultResponseSer().to_dict().keys()
164164

165165
def test_wrong_link(self):
166166
instance = ImageCaptcha(rucaptcha_key=self.RUCAPTCHA_KEY)
167167
result = instance.captcha_handler(captcha_link=self.get_random_string(length=50))
168168
assert isinstance(result, dict) is True
169169
assert result["errorId"] == 12
170-
assert isinstance(result["solution"]["text"], str) is True
170+
assert isinstance(result["errorCode"], str) is True
171171
assert result.keys() == GetTaskResultResponseSer().to_dict().keys()
172172

173173
def test_wrong_base64(self):
@@ -183,7 +183,7 @@ async def test_aio_wrong_link(self):
183183
result = await instance.aio_captcha_handler(captcha_link=self.get_random_string(length=50))
184184
assert isinstance(result, dict) is True
185185
assert result["errorId"] == 12
186-
assert isinstance(result["solution"]["text"], str) is True
186+
assert isinstance(result["errorCode"], str) is True
187187
assert result.keys() == GetTaskResultResponseSer().to_dict().keys()
188188

189189
@pytest.mark.asyncio

0 commit comments

Comments
 (0)