@@ -1307,6 +1307,36 @@ def test_store_instance_error_with_retries(httpserver, client, cache_dir):
13071307 )
13081308
13091309
1310+ def test_store_instance_error_with_retries_and_additional_params (
1311+ httpserver , client , cache_dir
1312+ ):
1313+ dataset = pydicom .Dataset .from_json ({})
1314+ dataset .is_little_endian = True
1315+ dataset .is_implicit_VR = True
1316+ max_attempts = 2
1317+ client .set_http_retry_params (
1318+ retry = True ,
1319+ max_attempts = max_attempts ,
1320+ wait_exponential_multiplier = 10
1321+ )
1322+ httpserver .serve_content (
1323+ content = '' ,
1324+ code = HTTPStatus .REQUEST_TIMEOUT ,
1325+ headers = ''
1326+ )
1327+ params = {"key1" : ["value1" , "value2" ], "key2" : "value3" }
1328+ with pytest .raises (RetryError ):
1329+ client .store_instances ([dataset ], additional_params = params )
1330+ assert len (httpserver .requests ) == max_attempts
1331+ request = httpserver .requests [0 ]
1332+ assert request .headers ['Content-Type' ].startswith (
1333+ 'multipart/related; type="application/dicom"'
1334+ )
1335+ assert request .query_string .decode () == (
1336+ 'key1=value1&key1=value2&key2=value3'
1337+ )
1338+
1339+
13101340def test_store_instance_error_with_no_retries (httpserver , client , cache_dir ):
13111341 dataset = pydicom .Dataset .from_json ({})
13121342 dataset .is_little_endian = True
@@ -1326,6 +1356,31 @@ def test_store_instance_error_with_no_retries(httpserver, client, cache_dir):
13261356 )
13271357
13281358
1359+ def test_store_instance_error_with_no_retries_and_additional_params (
1360+ httpserver , client , cache_dir
1361+ ):
1362+ dataset = pydicom .Dataset .from_json ({})
1363+ dataset .is_little_endian = True
1364+ dataset .is_implicit_VR = True
1365+ client .set_http_retry_params (retry = False )
1366+ httpserver .serve_content (
1367+ content = '' ,
1368+ code = HTTPStatus .REQUEST_TIMEOUT ,
1369+ headers = ''
1370+ )
1371+ params = {"key1" : ["value1" , "value2" ], "key2" : "value3" }
1372+ with pytest .raises (HTTPError ):
1373+ client .store_instances ([dataset ], additional_params = params )
1374+ assert len (httpserver .requests ) == 1
1375+ request = httpserver .requests [0 ]
1376+ assert request .headers ['Content-Type' ].startswith (
1377+ 'multipart/related; type="application/dicom"'
1378+ )
1379+ assert request .query_string .decode () == (
1380+ 'key1=value1&key1=value2&key2=value3'
1381+ )
1382+
1383+
13291384def test_delete_study_error (httpserver , client , cache_dir ):
13301385 study_instance_uid = '1.2.3'
13311386 httpserver .serve_content (
0 commit comments