@@ -29,10 +29,7 @@ def test_create_no_name(client):
2929
3030 resp = client .post (
3131 "/shipments/1/topLevelContainers" ,
32- json = {
33- "type" : "dewar" ,
34- "code" : "DLS-EM-0001" ,
35- },
32+ json = {"type" : "dewar" , "code" : "DLS-EM-0001" , "manufacturerSerialNumber" : "serial123" },
3633 )
3734
3835 assert resp .status_code == 201
@@ -48,10 +45,7 @@ def test_create_auto_barcode_no_instrument(client):
4845
4946 resp = client .post (
5047 "/shipments/1/topLevelContainers" ,
51- json = {
52- "type" : "dewar" ,
53- "code" : "DLS-EM-0001" ,
54- },
48+ json = {"type" : "dewar" , "code" : "DLS-EM-0001" , "manufacturerSerialNumber" : "serial123" },
5549 )
5650
5751 assert resp .status_code == 201
@@ -122,10 +116,7 @@ def test_create_duplicate_name(client):
122116
123117 resp = client .post (
124118 "/shipments/1/topLevelContainers" ,
125- json = {
126- "type" : "dewar" ,
127- "code" : "DLS-EM-0000" ,
128- },
119+ json = {"type" : "dewar" , "code" : "DLS-EM-0000" , "manufacturerSerialNumber" : "serial123" },
129120 )
130121
131122 assert resp .status_code == 409
@@ -162,9 +153,30 @@ def test_create_no_code(client):
162153 )
163154
164155
156+ @responses .activate
157+ def test_create_invalid_serial (client ):
158+ """Should raise error if invalid manufacturer serial code is provided for registered dewar"""
159+ responses .get (
160+ f"{ Config .ispyb_api .url } /proposals/cm1/dewar-registry/DLS-EM-0001" ,
161+ status = 200 ,
162+ json = {"manufacturerSerialNumber" : "different123" },
163+ )
164+
165+ resp = client .post (
166+ "/shipments/1/topLevelContainers" ,
167+ json = {
168+ "type" : "dewar" ,
169+ "code" : "DLS-EM-0001" ,
170+ "manufacturerSerialNumber" : "test123" ,
171+ },
172+ )
173+
174+ assert resp .status_code == 404
175+
176+
165177@responses .activate
166178def test_create_with_serial (client ):
167- """Should automatically generate code if serial code is provided"""
179+ """Should automatically create dewar registry entry with serial code if serial code is provided"""
168180 creation_response = responses .post (
169181 f"{ Config .ispyb_api .url } /proposals/cm1/dewar-registry" ,
170182 status = 201 ,
@@ -181,7 +193,8 @@ def test_create_with_serial(client):
181193 "/shipments/1/topLevelContainers" ,
182194 json = {
183195 "type" : "dewar" ,
184- "code" : "test123" ,
196+ "code" : None ,
197+ "manufacturerSerialNumber" : "serial123" ,
185198 },
186199 )
187200
@@ -193,7 +206,7 @@ def test_create_with_serial(client):
193206
194207 assert json .loads (creation_response .calls [0 ].request .body .decode ()) == {
195208 "facilityCode" : "DLS-BI-5672" ,
196- "manufacturerSerialNumber" : "test123 " ,
209+ "manufacturerSerialNumber" : "serial123 " ,
197210 }
198211
199212
0 commit comments