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