File size: 2,247 Bytes
0fea413
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from fastapi.testclient import TestClient
from app.main import app

client = TestClient(app)


def test_run_pricing_is_temporarily_disabled():
    """/pricing/run was disabled after AUDIT_arf-bayesian-pricing-calculator.md's
    Critical finding: it persisted a fabricated random.random() outcome into a
    calibration buffer with no customer_id scoping, so every customer's price
    was shaped by every other customer's fabricated outcomes. This asserts the
    disabled state itself, not the old (buggy) behavior -- update this test
    when the endpoint is actually fixed and re-enabled, not before."""
    response = client.post(
        "/api/v1/pricing/run",
        json={"input": {}, "customer_id": "test-customer", "runs": 1},
    )
    assert response.status_code == 503
    assert "temporarily disabled" in response.json()["detail"].lower()


def test_run_pricing_still_requires_auth():
    """Disabling the endpoint must not also disable its auth -- conftest.py's
    mock_enforce_quota makes every request "authenticated" for this test
    client, so this only confirms the Depends(enforce_quota) dependency is
    still declared and still runs before the handler body (i.e. it wasn't
    accidentally dropped along with the rest of the function body); it does
    not exercise the real 401/403 paths, which are covered by test_deps.py
    and usage_tracker's own tests."""
    response = client.post(
        "/api/v1/pricing/run",
        json={"input": {}, "customer_id": "test-customer", "runs": 1},
    )
    # Reaching the 503 (not erroring before it) proves enforce_quota resolved
    # successfully -- if the dependency were missing or broken, this would be
    # a 401/422/500 instead.
    assert response.status_code == 503


def test_estimate_pricing_route_still_registered():
    """/pricing/estimate was not touched by the disable -- confirm it's still
    a distinct, reachable route (a malformed request should 400, not 503/404),
    so a caller following the "use /pricing/estimate instead" guidance in the
    503 detail message actually has somewhere to go."""
    response = client.post("/api/v1/pricing/estimate", json={"input": {}})
    assert response.status_code != 503
    assert response.status_code != 404