Files
chat/tests/test_calendar_mobile.py
Andrew K. Choi 537e7b363f
All checks were successful
continuous-integration/drone/push Build is passing
main commit
2025-10-16 16:30:25 +09:00

103 lines
3.9 KiB
Python
Executable File
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.

#!/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)