kwork-api/tests/e2e/test_catalog.py

130 lines
4.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
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()