11from os .path import abspath
2+ from urllib .parse import parse_qs
23
34import responses
45from pytest import raises
@@ -205,6 +206,19 @@ def test_buy_number():
205206 assert response .error_code == '200'
206207 assert response .error_code_label == 'success'
207208
209+ # The data is sent as form-encoded, so we need to parse it accordingly
210+ request_body = responses .calls [0 ].request .body
211+ form_data = parse_qs (request_body )
212+
213+ # parse_qs returns values as lists, so we need to extract the first item
214+ parsed_data = {key : value [0 ] for key , value in form_data .items ()}
215+
216+ expected_data = {
217+ 'country' : 'GB' ,
218+ 'msisdn' : '447000000000' ,
219+ }
220+ assert parsed_data == expected_data
221+
208222
209223@responses .activate
210224def test_cancel_number ():
@@ -219,6 +233,19 @@ def test_cancel_number():
219233 assert response .error_code == '200'
220234 assert response .error_code_label == 'success'
221235
236+ # The data is sent as form-encoded, so we need to parse it accordingly
237+ request_body = responses .calls [0 ].request .body
238+ form_data = parse_qs (request_body )
239+
240+ # parse_qs returns values as lists, so we need to extract the first item
241+ parsed_data = {key : value [0 ] for key , value in form_data .items ()}
242+
243+ expected_data = {
244+ 'country' : 'GB' ,
245+ 'msisdn' : '447000000000' ,
246+ }
247+ assert parsed_data == expected_data
248+
222249
223250@responses .activate
224251def test_cancel_number_error_no_number ():
@@ -233,6 +260,19 @@ def test_cancel_number_error_no_number():
233260
234261 assert e .match ('method failed' )
235262
263+ # The data is sent as form-encoded, so we need to parse it accordingly
264+ request_body = responses .calls [0 ].request .body
265+ form_data = parse_qs (request_body )
266+
267+ # parse_qs returns values as lists, so we need to extract the first item
268+ parsed_data = {key : value [0 ] for key , value in form_data .items ()}
269+
270+ expected_data = {
271+ 'country' : 'GB' ,
272+ 'msisdn' : '447000000000' ,
273+ }
274+ assert parsed_data == expected_data
275+
236276
237277@responses .activate
238278def test_update_number ():
@@ -255,9 +295,29 @@ def test_update_number():
255295 )
256296 )
257297
298+ # Verify the response
258299 assert response .error_code == '200'
259300 assert response .error_code_label == 'success'
260301
302+ # The data is sent as form-encoded, so we need to parse it accordingly
303+ request_body = responses .calls [0 ].request .body
304+ form_data = parse_qs (request_body )
305+
306+ # parse_qs returns values as lists, so we need to extract the first item
307+ parsed_data = {key : value [0 ] for key , value in form_data .items ()}
308+
309+ expected_data = {
310+ 'country' : 'GB' ,
311+ 'msisdn' : '447009000000' ,
312+ 'app_id' : '29f769u7-7ce1-46c9-ade3-f2dedee4fr4t' ,
313+ 'moHttpUrl' : 'https://example.com' ,
314+ 'moSmppSysType' : 'inbound' ,
315+ 'voiceCallbackType' : 'tel' ,
316+ 'voiceCallbackValue' : '447009000000' ,
317+ 'voiceStatusCallback' : 'https://example.com' ,
318+ }
319+ assert parsed_data == expected_data
320+
261321
262322def test_update_number_options_error ():
263323 with raises (NumbersError ) as e :
0 commit comments