@@ -64,3 +64,26 @@ def test_allocations_are_persisted(add_stock):
6464 r = requests .post (f"{ url } /allocate" , json = line2 )
6565 assert r .status_code == 201
6666 assert r .json ()["batchref" ] == batch2
67+
68+
69+ @pytest .mark .usefixtures ("restart_api" )
70+ def test_400_message_for_out_of_stock (add_stock ):
71+ sku , smalL_batch , large_order = random_sku (), random_batchref (), random_orderid ()
72+ add_stock (
73+ [(smalL_batch , sku , 10 , "2011-01-01" ),]
74+ )
75+ data = {"orderid" : large_order , "sku" : sku , "qty" : 20 }
76+ url = config .get_api_url ()
77+ r = requests .post (f"{ url } /allocate" , json = data )
78+ assert r .status_code == 400
79+ assert r .json ()["message" ] == f"Out of stock for sku { sku } "
80+
81+
82+ @pytest .mark .usefixtures ("restart_api" )
83+ def test_400_message_for_invalid_sku ():
84+ unknown_sku , orderid = random_sku (), random_orderid ()
85+ data = {"orderid" : orderid , "sku" : unknown_sku , "qty" : 20 }
86+ url = config .get_api_url ()
87+ r = requests .post (f"{ url } /allocate" , json = data )
88+ assert r .status_code == 400
89+ assert r .json ()["message" ] == f"Invalid sku { unknown_sku } "
0 commit comments