45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
"""
|
|
Сохранение результатов тестов в БД.
|
|
"""
|
|
|
|
import json
|
|
from db.pool import get_conn, put_conn
|
|
|
|
|
|
def save_run(client_id, stand, user_email, svc_id, svc_name, op_name, svc_op_id,
|
|
op_uid, instance_uid, display_name, status, duration_sec,
|
|
error_log, params, stages, app_version,
|
|
scenario_run_id=None, step_number=None):
|
|
"""Сохранить один запуск в таблицу runs.
|
|
Опционально: scenario_run_id + step_number для шагов сценария."""
|
|
conn = get_conn()
|
|
if not conn:
|
|
print("[DB] save_run SKIP: no connection", flush=True)
|
|
return
|
|
|
|
try:
|
|
cur = conn.cursor()
|
|
cur.execute("""
|
|
INSERT INTO runs (client_id, stand, user_email, svc_id, svc_name,
|
|
op_name, svc_op_id, op_uid, instance_uid, display_name,
|
|
status, duration_sec, error_log, params, stages, app_version,
|
|
scenario_run_id, step_number)
|
|
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
|
|
""", (
|
|
client_id, stand, user_email, svc_id, svc_name, op_name, svc_op_id,
|
|
op_uid, instance_uid, display_name, status, duration_sec,
|
|
error_log,
|
|
json.dumps(params) if params else None,
|
|
json.dumps(stages) if stages else None,
|
|
app_version,
|
|
scenario_run_id, step_number,
|
|
))
|
|
conn.commit()
|
|
cur.close()
|
|
print(f"[DB] save_run OK: {op_name} {status} {duration_sec}s", flush=True)
|
|
except Exception as e:
|
|
print(f"[DB] save_run error: {e}", flush=True)
|
|
conn.rollback()
|
|
finally:
|
|
put_conn(conn)
|