1+ from typing import Any
2+
13import pytest
24from assertpy import assert_that
3- from fastapi import Response
5+ from fastapi . encoders import jsonable_encoder
46from fastapi .testclient import TestClient
57from importlib import reload
8+
9+ from httpx import Response
10+
611import app .routers .customer as customer
12+ from app .model .customer import Customer
713
814
915@pytest .fixture
@@ -16,5 +22,30 @@ def test_customers_insert_read_delete(
1622 test_client : TestClient ,
1723 reload_customer_router : None ,
1824):
19- initial_delete : Response = test_client .delete ("/context/customers" )
20- assert_that (initial_delete .status_code ).is_equal_to (204 )
25+ initial_delete_response : Response = test_client .delete ("/context/customers" )
26+ assert_that (initial_delete_response .status_code ).is_equal_to (204 )
27+
28+ customer1 = Customer (first_name = "fname1" , last_name = "lname1" )
29+ customer2 = Customer (first_name = "fname2" , last_name = "lname2" )
30+ input_json = jsonable_encoder ([customer1 , customer2 ])
31+
32+ create_response : Response = test_client .put ("/context/customers" , json = input_json )
33+ assert_that (create_response .status_code ).is_equal_to (204 )
34+
35+ read_response : Response = test_client .get ("/context/customers" )
36+
37+ assert_that (read_response .status_code ).is_equal_to (200 )
38+ response_json : list [dict [str , Any ]] = read_response .json ()
39+
40+ assert_that (response_json ).is_length (2 )
41+ assert_that (response_json ).contains (jsonable_encoder (customer1 ))
42+ assert_that (response_json ).contains (jsonable_encoder (customer2 ))
43+
44+ delete_response : Response = test_client .delete ("/context/customers" )
45+ assert_that (delete_response .status_code ).is_equal_to (204 )
46+
47+ read_response_after_delete : Response = test_client .get ("/context/customers" )
48+
49+ assert_that (read_response_after_delete .status_code ).is_equal_to (200 )
50+ response_json_after_delete : list [dict [str , Any ]] = read_response_after_delete .json ()
51+ assert_that (response_json_after_delete ).is_length (0 )
0 commit comments