File size: 966 Bytes
395651c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
"""Job poll normalization for FE contract."""

import uuid

from app.job_poll import normalize_job_row_for_client


def test_normalize_adds_job_id_and_parses_result_json_string():
    jid = str(uuid.uuid4())
    row = {
        "id": jid,
        "status": "success",
        "user_id": uuid.uuid4(),
        "session_id": uuid.uuid4(),
        "result": '{"coordinates": {"A": [0, 1]}}',
        "input_text": "x",
    }
    out = normalize_job_row_for_client(row)
    assert out["job_id"] == jid
    assert out["id"] == jid
    assert out["status"] == "success"
    assert isinstance(out["result"], dict)
    assert out["result"]["coordinates"]["A"] == [0, 1]
    assert isinstance(out["user_id"], str)
    assert isinstance(out["session_id"], str)


def test_normalize_keeps_dict_result():
    row = {"id": "j1", "status": "processing", "result": None}
    out = normalize_job_row_for_client(row)
    assert out["job_id"] == "j1"
    assert out["result"] is None