1010client = TestClient (app )
1111
1212
13- < << << << copilot / sub - pr - 7
14- def _mock_db_dependency (rows = None ):
15- """Return a FastAPI dependency override that yields a mock DB connection."""
16- if rows is None :
17- rows = []
18-
19- def override ():
20- mock_conn = MagicMock ()
21- mock_cursor = MagicMock ()
22- mock_conn .cursor .return_value = mock_cursor
23- mock_cursor .fetchall .return_value = rows
24- yield mock_conn
25-
26- return override
27-
28-
29- def test_root_returns_product_data () -> None :
30- """GET / should return meta and data with product list."""
31- app .dependency_overrides [get_db_connection ] = _mock_db_dependency (rows = [])
32- try :
33- response = client .get ("/" )
34- assert response .status_code == 200
35- body = response .json ()
36- assert "meta" in body
37- assert "data" in body
38- assert body ["meta" ]["severity" ] == "success"
39- assert isinstance (body ["data" ], list )
40- finally :
41- app .dependency_overrides .clear ()
42-
43-
44- def test_root_returns_products_from_db () -> None :
45- """GET / should include product rows returned by the database."""
46- from datetime import datetime
47- from decimal import Decimal
48- mock_row = (1 , "Widget" , "A useful widget" , Decimal ("19.99" ), True , datetime (2024 , 1 , 1 , 0 , 0 , 0 ))
49- app .dependency_overrides [get_db_connection ] = _mock_db_dependency (rows = [mock_row ])
50- try :
51- response = client .get ("/" )
52- assert response .status_code == 200
53- body = response .json ()
54- assert len (body ["data" ]) == 1
55- assert body ["data" ][0 ]["name" ] == "Widget"
56- assert body ["data" ][0 ]["price" ] == "19.99"
57- assert "Returned 1 products" in body ["meta" ]["message" ]
58- finally :
59- app .dependency_overrides .clear ()
60- == == == =
6113def test_root_returns_welcome_message () -> None :
6214 """GET / should return a welcome message."""
6315 response = client .get ("/" )
@@ -67,7 +19,6 @@ def test_root_returns_welcome_message() -> None:
6719 assert "data" in json_data
6820 assert "message" in json_data ["meta" ]
6921 assert "NX AI" in json_data ["meta" ]["message" ]
70- > >> >> >> staging
7122
7223
7324def test_health_returns_ok () -> None :
0 commit comments