calendar events
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-09-26 15:57:50 +09:00
parent 64171196b6
commit 76d0d86211
16 changed files with 1657 additions and 22 deletions

103
test_calendar_mobile.py Executable file
View File

@@ -0,0 +1,103 @@
#!/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)