main commit
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-10-16 16:30:25 +09:00
parent 91c7e04474
commit 537e7b363f
1146 changed files with 45926 additions and 77196 deletions

103
tests/test_mobile_endpoint.py Executable file
View File

@@ -0,0 +1,103 @@
#!/usr/bin/env python
import json
import requests
import sys
from datetime import date
# API Gateway endpoint
BASE_URL = "http://localhost:8004"
# Имя пользователя и пароль для аутентификации
# (предполагается, что у вас есть настроенный доступ)
AUTH_DATA = {
"username": "test_user",
"password": "test_password"
}
# Получение токена аутентификации
def get_token():
# Обычно мы бы получили токен из сервиса аутентификации,
# но для теста будем использовать фиктивный токен
# или можем запросить его из user_service
return "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6InRlc3RfdXNlciIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImV4cCI6MTY5ODI0OTc2Mn0.HS5-cPVZwv55h0CZO0q_Z_1vNY9w8B6YsPJytj4UI0A"
# Проверка работоспособности сервиса
def check_health():
try:
response = requests.get(f"{BASE_URL}/health")
if response.status_code == 200:
print(f"Сервис календаря работает. Ответ: {response.json()}")
return True
else:
print(f"Сервис календаря доступен, но возвращает ошибку: {response.status_code}")
return False
except requests.exceptions.ConnectionError:
print(f"Ошибка подключения к {BASE_URL}. Убедитесь, что сервис запущен.")
return False
# Тестовые данные для мобильного приложения
def test_create_calendar_entry_mobile():
try:
token = get_token()
print(f"Токен получен: {token[:15]}...")
# Данные в формате мобильного приложения
mobile_data = {
"date": date.today().isoformat(),
"type": "MENSTRUATION",
"flow_intensity": 3, # средний (1-5)
"symptoms": ["CRAMPS", "HEADACHE"], # массив строк
"mood": "NORMAL",
"notes": "Тестовая запись из мобильного приложения"
}
print(f"Отправляемые данные: {json.dumps(mobile_data, indent=2)}")
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {token}"
}
print(f"Отправляем запрос на {BASE_URL}/debug/mobile-entry")
# Используем тестовый эндпоинт без аутентификации
print(f"Отправляем запрос на {BASE_URL}/debug/mobile-entry")
response = requests.post(
f"{BASE_URL}/debug/mobile-entry",
json=mobile_data
)
print(f"Статус ответа: {response.status_code}")
if response.status_code >= 200 and response.status_code < 300:
print(f"Тело успешного ответа: {json.dumps(response.json(), indent=2)}")
return response.json()
else:
print("Ошибка при создании записи")
try:
print(f"Тело ответа с ошибкой: {json.dumps(response.json(), indent=2)}")
except json.JSONDecodeError:
print(f"Тело ответа не является JSON: {response.text}")
return None
except requests.exceptions.RequestException as e:
print(f"Ошибка при выполнении запроса: {e}")
return None
except Exception as e:
print(f"Неожиданная ошибка: {e}")
return None
if __name__ == "__main__":
print("Тестирование создания записи календаря из мобильного приложения...")
if not check_health():
print("Сервис недоступен. Тестирование прекращено.")
sys.exit(1)
result = test_create_calendar_entry_mobile()
if result:
print("Тест успешно завершен!")
else:
print("Тест завершился с ошибкой.")
sys.exit(1)