This commit is contained in:
103
tests/test_calendar_mobile.py
Executable file
103
tests/test_calendar_mobile.py
Executable 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)
|
||||
Reference in New Issue
Block a user