File size: 968 Bytes
2e818da
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from app.agents.d3.router import D3TemplateRouter, D3Selection


class _FakeClient:
    def __init__(self, obj): self._obj = obj
    def structured_complete(self, messages, schema, **kw): return self._obj


def test_router_picks_template():
    r = D3TemplateRouter(client=_FakeClient(D3Selection(template_id="bar_chart")))
    out = r.select("GDP by country", [{"source": "x", "text": "US 21, China 14"}], "graduate")
    assert out.template_id == "bar_chart"


def test_router_never_declines_falls_back_on_unknown_template_id():
    # The router never declines -- the student already asked for a chart. If the
    # model returns a template id that doesn't exist in the catalog, fall back to
    # a safe default instead of refusing.
    r = D3TemplateRouter(client=_FakeClient(D3Selection(template_id="not_a_real_template")))
    out = r.select("the nature of justice", [{"source": "x", "text": "philosophy"}], "graduate")
    assert out.template_id == "bar_chart"