-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtests.py
65 lines (51 loc) · 1.89 KB
/
tests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from io import BytesIO
from fastapi.testclient import TestClient
from main import app
client = TestClient(app)
def test_form_load():
"""
Тест на загрузку главной страницы с формой.
"""
response = client.get("/")
assert response.status_code == 200
assert "Загрузите изображение для обработки" in response.text
def test_no_file_selected(mocker):
"""
Тест на случай, если файл не был выбран.
"""
mocker.patch(
"httpx.AsyncClient.post",
return_value=mocker.Mock(status_code=200, json=lambda: {"success": True}),
)
file_data = BytesIO(b"")
response = client.post(
"/process_image/",
files={"file": ("filename.png", file_data, "image/png")},
data={
"stripe_width": "10",
"direction": "horizontal",
"g-recaptcha-response": "VALID_CAPTCHA_RESPONSE",
},
)
assert response.status_code == 200
assert "Не выбрано изображение. Пожалуйста, попробуйте еще раз" in response.text
def test_invalid_recaptcha(mocker):
"""
Тест на неудачную проверку капчи.
"""
mocker.patch(
"httpx.AsyncClient.post",
return_value=mocker.Mock(status_code=200, json=lambda: {"success": False}),
)
file_data = BytesIO(b"dummy data")
response = client.post(
"/process_image/",
files={"file": ("filename.png", file_data, "image/png")},
data={
"stripe_width": "10",
"direction": "horizontal",
"g-recaptcha-response": "INVALID_CAPTCHA_RESPONSE",
},
)
assert response.status_code == 200
assert "Проверка капчи не пройдена. Пожалуйста, попробуйте ещё раз" in response.text