/
1Rrd0
/
3Lab
Обзор
Документация
Войти
/
1Rrd0
/
3Lab
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
cli.py
70 строк
2 KB
dima
add
18 дек 2025, 16:26
18 дек 2025, 16:26
ac92f21
Код
Авторство
О чём код?
import os import uuid from client import TaskManagerClient, ApiError def main(): # ВАЖНО: префиксы смотри в Swagger! Часто это api/v1 и api/v2. base_url = os.getenv("API_BASE_URL", "http://localhost:8000") v1 = os.getenv("API_V1_PREFIX", "api/v1") v2 = os.getenv("API_V2_PREFIX", "api/v2") email = os.getenv("API_EMAIL", "test1@example.com") password = os.getenv("API_PASSWORD", "Passw0rd!") full_name = os.getenv("API_FULL_NAME", "Test User") c = TaskManagerClient(base_url, v1, v2) try: print("1) register (может упасть, если уже есть)") try: u = c.register(email, password, full_name) print("registered:", u) except ApiError as e: print("register error (ok for lab):", e) print("\n2) login") token = c.login(email, password) print("token:", token[:20] + "...") print("\n3) create task with idempotency") idem_key = str(uuid.uuid4()) t1 = c.create_task_v1("Buy milk", "demo", status="todo", idempotency_key=idem_key) print("created:", t1) print("\n4) repeat same POST with same Idempotency-Key (should NOT duplicate)") t2 = c.create_task_v1("Buy milk", "demo", status="todo", idempotency_key=idem_key) print("reused:", t2) task_id = t1.get("id") or t1.get("task_id") if task_id: print("\n5) update") upd = c.update_task_v1(int(task_id), status="done") print("updated:", upd) print("\n6) pagination list (limit=2)") page1 = c.list_tasks_v1(limit=2, offset=0) page2 = c.list_tasks_v1(limit=2, offset=2) print("page1:", page1) print("page2:", page2) print("\n7) delete") c.delete_task_v1(int(task_id)) print("deleted") print("\n8) v2 fields include=title,status") print(c.list_tasks_fields_v2(include="title,status", limit=5, offset=0)) print("\n9) internal stats v2") print(c.internal_stats_v2()) except ApiError as e: print("API ERROR:", e) finally: c.close() if __name__ == "__main__": main()