This commit is contained in:
121
test_mobile_api.py
Executable file
121
test_mobile_api.py
Executable file
@@ -0,0 +1,121 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import json
|
||||
import requests
|
||||
from datetime import date
|
||||
|
||||
# Используем сохраненный токен авторизации
|
||||
with open('auth_token.txt', 'r') as f:
|
||||
TOKEN = f.read().strip()
|
||||
|
||||
# Базовый URL для тестирования
|
||||
BASE_URL = "http://localhost:8004"
|
||||
HEADERS = {
|
||||
"Content-Type": "application/json",
|
||||
"Authorization": f"Bearer {TOKEN}"
|
||||
}
|
||||
|
||||
# Функция для тестирования мобильного эндпоинта
|
||||
def test_mobile_endpoint():
|
||||
url = f"{BASE_URL}/api/v1/calendar/entries/mobile"
|
||||
|
||||
# Данные для мобильного запроса
|
||||
data = {
|
||||
"date": date.today().isoformat(),
|
||||
"type": "MENSTRUATION",
|
||||
"flow_intensity": 3,
|
||||
"symptoms": ["CRAMPS", "HEADACHE"],
|
||||
"mood": "NORMAL",
|
||||
"notes": "Тест мобильного API"
|
||||
}
|
||||
|
||||
print("\n1. Тестирование создания записи через мобильный API...")
|
||||
print(f"POST {url}")
|
||||
print(f"Данные: {json.dumps(data, ensure_ascii=False)}")
|
||||
|
||||
try:
|
||||
response = requests.post(url, json=data, headers=HEADERS)
|
||||
|
||||
if response.status_code == 201:
|
||||
print(f"✅ Успешно! Статус: {response.status_code}")
|
||||
print(f"Ответ: {json.dumps(response.json(), ensure_ascii=False, indent=2)}")
|
||||
|
||||
# Теперь проверим, что мы можем получить запись
|
||||
entry_id = response.json().get("id")
|
||||
return entry_id
|
||||
else:
|
||||
print(f"❌ Ошибка! Статус: {response.status_code}")
|
||||
print(f"Ответ: {response.text}")
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"❌ Исключение: {str(e)}")
|
||||
return None
|
||||
|
||||
# Функция для проверки получения всех записей
|
||||
def test_get_entries(entry_id=None):
|
||||
url = f"{BASE_URL}/api/v1/calendar/entries"
|
||||
|
||||
print("\n2. Проверка получения записей календаря...")
|
||||
print(f"GET {url}")
|
||||
|
||||
try:
|
||||
response = requests.get(url, headers=HEADERS)
|
||||
|
||||
if response.status_code == 200:
|
||||
print(f"✅ Успешно! Статус: {response.status_code}")
|
||||
entries = response.json()
|
||||
print(f"Получено записей: {len(entries)}")
|
||||
|
||||
# Если у нас есть ID записи, которую мы создали ранее, проверим ее наличие
|
||||
if entry_id:
|
||||
found = False
|
||||
for entry in entries:
|
||||
if entry.get("id") == entry_id:
|
||||
found = True
|
||||
print(f"✅ Созданная запись найдена в списке (ID: {entry_id})")
|
||||
break
|
||||
|
||||
if not found:
|
||||
print(f"❌ Созданная запись не найдена в списке (ID: {entry_id})")
|
||||
else:
|
||||
print(f"❌ Ошибка! Статус: {response.status_code}")
|
||||
print(f"Ответ: {response.text}")
|
||||
except Exception as e:
|
||||
print(f"❌ Исключение: {str(e)}")
|
||||
|
||||
# Тестирование отладочного эндпоинта (без аутентификации)
|
||||
def test_debug_endpoint():
|
||||
url = f"{BASE_URL}/debug/mobile-entry"
|
||||
|
||||
# Данные для мобильного запроса
|
||||
data = {
|
||||
"date": date.today().isoformat(),
|
||||
"type": "MENSTRUATION",
|
||||
"flow_intensity": 3,
|
||||
"symptoms": ["CRAMPS", "HEADACHE"],
|
||||
"mood": "NORMAL",
|
||||
"notes": "Тест отладочного API"
|
||||
}
|
||||
|
||||
print("\n3. Тестирование отладочного эндпоинта...")
|
||||
print(f"POST {url}")
|
||||
print(f"Данные: {json.dumps(data, ensure_ascii=False)}")
|
||||
|
||||
try:
|
||||
response = requests.post(url, json=data)
|
||||
|
||||
if response.status_code == 200:
|
||||
print(f"✅ Успешно! Статус: {response.status_code}")
|
||||
print(f"Ответ: {json.dumps(response.json(), ensure_ascii=False, indent=2)}")
|
||||
else:
|
||||
print(f"❌ Ошибка! Статус: {response.status_code}")
|
||||
print(f"Ответ: {response.text}")
|
||||
except Exception as e:
|
||||
print(f"❌ Исключение: {str(e)}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("=== Тестирование мобильного API календарного сервиса ===")
|
||||
entry_id = test_mobile_endpoint()
|
||||
test_get_entries(entry_id)
|
||||
test_debug_endpoint()
|
||||
print("\nТестирование завершено!")
|
||||
Reference in New Issue
Block a user