Exemple #1
0
 def test_delete_OK(self):
     with mock.patch('D365BCAPI.D365BCv1API.requests') as mocked_req:
         mocked_req.get.return_value.status_code = 200
         mocked_req.delete.return_value.status_code = 204
         mocked_req.delete.return_value.reason = 'OK'
         dele = Connect('http://test.lt/test(123456789abcd)', auth={'a': 'a'}, headers={'some headers'})
         respo = dele.delete()
         mocked_req.delete.assert_called_with('http://test.lt/test(123456789abcd)', auth={'a': 'a'},
                                              headers={'some headers'})
         self.assertEqual(respo, [204, 'OK'], 'delete: no error - returns [204, OK]')
Exemple #2
0
 def test_delete_FAIL(self):
     with mock.patch('D365BCAPI.D365BCv1API.requests') as mocked_req:
         mocked_req.get.return_value.status_code = 200
         mocked_req.delete.return_value.status_code = 400
         mocked_req.delete.return_value.reason = 'Any error reason'  # error message
         dele = Connect('http://test.lt/test(123456789abcd)', auth={'a': 'a'}, headers={'some headers'})
         respo = dele.delete()
         mocked_req.delete.assert_called_with('http://test.lt/test(123456789abcd)', auth={'a': 'a'},
                                              headers={'some headers'})
         self.assertEqual(respo, [], 'delete: on error returns blank')
         self.assertEqual(dele.except_error, [400, 'Any error reason'], 'delete: on error variable except_error '
                                                                        'must to include error code and reason')
Exemple #3
0
# in API v1.0 we need to find sales line id and identify it by id
# we looking for line with sequence 37500

sol.url = f"http://bs17:7048/BC/api/v1.0/salesOrders({so_id})/salesOrderLines"
sol.filter_text = f"sequence eq {line_no}"  # add filter ?$filter=sequence eq 37500

response_list = sol.read()  # get line with filtered sequence 37500
if (len(response_list) > 0) and sol.except_error is None:
    line_id = response_list[0].get('id')
    print(f"Line 3750 id is  {line_id}")
else:
    raise Exception(sol.except_error)

sol.url = f"http://bs17:7048/BC/api/v1.0/salesOrderLines('{line_id}')"  # adding line_id to URL
sol.filter_text = ''  # remove any filters
response_list = sol.delete()  # update line in parameters new info dic
if (len(response_list) > 0) and sol.except_error is None:
    print("Deleted fake line 37500", response_list)
else:
    raise Exception(sol.except_error)

# count lines
sol.url = f"http://bs17:7048/BC/api/v1.0/salesOrders({so_id})/salesOrderLines"
response_list = sol.read()  # read all lines just for fun
print(f"SO has {len(response_list)} lines after deleted one"
      )  # number of lines in the document

# execute action - order ship and invoice
# http://bs17:7048/BC/api/v1.0/salesOrders({so_id})/Microsoft.NAV.shipAndInvoice
if len(
        so_id