@@ -36,6 +36,20 @@ def iCRS():
3636 return fake_iCRS
3737
3838
39+ @pytest .fixture ()
40+ def iCRSBytes ():
41+ fake_iCRS = session .iControlRESTSession ('admin' , 'admin' )
42+ fake_iCRS .session = mock .MagicMock ()
43+ req = requests .PreparedRequest ()
44+ req .prepare (method = 'post' , url = 'https://0.0.0.0/mgmt/tm/root/RESTiface/' )
45+ req .body = b'{"foo": "bar"}'
46+ fake_iCRS .session .prepare_request .return_value = req
47+ mock_response = mock .MagicMock ()
48+ mock_response .status_code = 200
49+ fake_iCRS .session .send .return_value = mock_response
50+ return fake_iCRS
51+
52+
3953@pytest .fixture ()
4054def uparts ():
4155 parts_dict = {'base_uri' : 'https://0.0.0.0/mgmt/tm/root/RESTiface/' ,
@@ -472,6 +486,14 @@ def test_wrapped_post_success_with_json_and_data(iCRS, uparts):
472486 assert iCRS .session .prepare_request .call_args [0 ][0 ].json == '{"a": 1}'
473487
474488
489+ def test_wrapped_post_success_with_json_and_data_bytestring (iCRSBytes , uparts ):
490+ iCRSBytes .post (uparts ['base_uri' ], partition = 'AFN' , name = 'AIN' , data = {'a' : 1 }, json = '{"a": 1}' , uri_as_parts = True )
491+ assert isinstance (iCRSBytes .session .prepare_request .call_args [0 ][0 ], requests .Request )
492+ assert iCRSBytes .session .prepare_request .call_args [0 ][0 ].url == 'https://0.0.0.0/mgmt/tm/root/RESTiface/~AFN~AIN'
493+ assert iCRSBytes .session .prepare_request .call_args [0 ][0 ].data == {'a' : 1 }
494+ assert iCRSBytes .session .prepare_request .call_args [0 ][0 ].json == '{"a": 1}'
495+
496+
475497def test_wrapped_put_success (iCRS , uparts ):
476498 iCRS .put (uparts ['base_uri' ], partition = 'AFN' , name = 'AIN' , uri_as_parts = True )
477499 assert isinstance (iCRS .session .prepare_request .call_args [0 ][0 ], requests .Request )
0 commit comments