#!/usr/bin/env python3 import json import sys import requests from datetime import date, datetime import time # Настройки для тестирования BASE_URL = "http://localhost:8000" # URL API Gateway TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyOSIsImVtYWlsIjoidGVzdDJAZXhhbXBsZS5jb20iLCJleHAiOjE3NTg4NjY5ODJ9._AXkBLeMI4zxC9shFUS3744miuyO8CDnJD1X1AqbLsw" # Функция для добавления записи в календарь через мобильный эндпоинт def create_mobile_calendar_entry(): url = f"{BASE_URL}/api/v1/calendar/entries/mobile" # Данные для создания записи в формате мобильного приложения today_str = date.today().isoformat() data = { "date": today_str, "type": "MENSTRUATION", "flow_intensity": 3, # medium "symptoms": ["CRAMPS", "HEADACHE"], "mood": "HAPPY", "notes": "Тестовая запись из мобильного приложения" } headers = { "Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json" } print(f"\n=== Тест мобильного эндпоинта ===") print(f"Отправка запроса POST на {url}") print(f"Данные: {json.dumps(data, indent=2, ensure_ascii=False)}") response = requests.post(url, json=data, headers=headers) print(f"Код ответа: {response.status_code}") if response.status_code == 201: print("✓ Запрос успешно выполнен") print(f"Ответ: {json.dumps(response.json(), indent=2, ensure_ascii=False)}") return True else: print(f"✗ Ошибка при выполнении запроса: {response.text}") return False # Функция для получения записей календаря def get_calendar_entries(): url = f"{BASE_URL}/api/v1/entries" headers = { "Authorization": f"Bearer {TOKEN}" } print(f"\n=== Получение записей календаря ===") print(f"Отправка запроса GET на {url}") response = requests.get(url, headers=headers) print(f"Код ответа: {response.status_code}") if response.status_code == 200: print("✓ Запрос успешно выполнен") entries = response.json() print(f"Количество записей: {len(entries)}") return True else: print(f"✗ Ошибка при выполнении запроса: {response.text}") return False if __name__ == "__main__": print("Тестирование API календаря для мобильного приложения") # Проверяем, что сервисы запущены try: health_check = requests.get(f"{BASE_URL}/api/v1/gateway/health") if health_check.status_code != 200: print("API Gateway недоступен. Убедитесь, что сервисы запущены.") sys.exit(1) except requests.exceptions.ConnectionError: print("Не удалось подключиться к API Gateway. Убедитесь, что сервисы запущены.") sys.exit(1) # Запускаем тесты success = True # Тест 1: Создание записи в календаре через мобильный эндпоинт if not create_mobile_calendar_entry(): success = False # Тест 2: Проверка получения записей if not get_calendar_entries(): success = False # Выводим общий результат if success: print("\n✅ Все тесты пройдены успешно!") sys.exit(0) else: print("\n❌ Некоторые тесты не пройдены.") sys.exit(1)