130 lines
4.0 KiB
Python
130 lines
4.0 KiB
Python
"""
|
||
E2E тесты для каталога и проектов.
|
||
|
||
Все тесты read-only - ничего не изменяют на сервере.
|
||
Endpoints основаны на анализе HAR файла.
|
||
"""
|
||
|
||
import pytest
|
||
|
||
from kwork_api import KworkClient
|
||
|
||
|
||
@pytest.mark.e2e
|
||
async def test_get_projects_list(require_credentials):
|
||
"""E2E: Получить список проектов с биржи.
|
||
|
||
Endpoint: GET https://kwork.ru/projects
|
||
"""
|
||
client = await KworkClient.login(
|
||
username=require_credentials["username"],
|
||
password=require_credentials["password"],
|
||
)
|
||
|
||
try:
|
||
# Note: Это может возвращать HTML страницу, не JSON API
|
||
# Пока просто проверяем что запрос работает
|
||
# В будущем нужно реализовать парсинг HTML или найти JSON API endpoint
|
||
assert client is not None
|
||
finally:
|
||
await client.close()
|
||
|
||
|
||
@pytest.mark.e2e
|
||
async def test_get_categories(require_credentials):
|
||
"""E2E: Получить категорию.
|
||
|
||
Endpoint: GET https://kwork.ru/categories/{slug}
|
||
"""
|
||
client = await KworkClient.login(
|
||
username=require_credentials["username"],
|
||
password=require_credentials["password"],
|
||
)
|
||
|
||
try:
|
||
# Note: Это возвращает HTML страницу категории
|
||
# Пока просто проверяем что запрос работает
|
||
assert client is not None
|
||
finally:
|
||
await client.close()
|
||
|
||
|
||
@pytest.mark.e2e
|
||
async def test_get_user_profile(require_credentials):
|
||
"""E2E: Получить профиль пользователя.
|
||
|
||
Endpoint: GET https://kwork.ru/user/{username}
|
||
"""
|
||
client = await KworkClient.login(
|
||
username=require_credentials["username"],
|
||
password=require_credentials["password"],
|
||
)
|
||
|
||
try:
|
||
# Note: Это возвращает HTML страницу профиля
|
||
# Пока просто проверяем что запрос работает
|
||
assert client is not None
|
||
finally:
|
||
await client.close()
|
||
|
||
|
||
@pytest.mark.e2e
|
||
async def test_api_checknotify(require_credentials):
|
||
"""E2E: Проверить уведомления.
|
||
|
||
Endpoint: POST https://kwork.ru/api/user/checknotify
|
||
"""
|
||
client = await KworkClient.login(
|
||
username=require_credentials["username"],
|
||
password=require_credentials["password"],
|
||
)
|
||
|
||
try:
|
||
# Note: Нужно реализовать endpoint в client.py
|
||
# Пока просто проверяем что логин работает
|
||
assert client.token is not None
|
||
finally:
|
||
await client.close()
|
||
|
||
|
||
@pytest.mark.e2e
|
||
async def test_api_addview(require_credentials):
|
||
"""E2E: Добавить просмотр (read-only операция).
|
||
|
||
Endpoint: POST https://kwork.ru/api/offer/addview
|
||
"""
|
||
client = await KworkClient.login(
|
||
username=require_credentials["username"],
|
||
password=require_credentials["password"],
|
||
)
|
||
|
||
try:
|
||
# Note: Нужно реализовать endpoint в client.py
|
||
# Пока просто проверяем что логин работает
|
||
assert client.token is not None
|
||
finally:
|
||
await client.close()
|
||
|
||
|
||
@pytest.mark.e2e
|
||
async def test_get_reviews(require_credentials):
|
||
"""E2E: Получить отзывы пользователя.
|
||
|
||
Endpoint: POST https://kwork.ru/user/get_reviews
|
||
|
||
HAR shows:
|
||
POST https://kwork.ru/user/get_reviews
|
||
{"userId":126921,"type":"positive"}
|
||
"""
|
||
client = await KworkClient.login(
|
||
username=require_credentials["username"],
|
||
password=require_credentials["password"],
|
||
)
|
||
|
||
try:
|
||
# Note: Нужно реализовать endpoint в client.py с правильным путём
|
||
# Пока просто проверяем что логин работает
|
||
assert client.token is not None
|
||
finally:
|
||
await client.close()
|