def test_file_update(): account = Account.create_from_data(json.loads(helpers.account)) file_data = json.loads(helpers.file_data) file_obj = File.create_from_data(file_data, parent_resource=account) with patch('sdk.resources.request') as mock_req: resp = Response() new_data = file_data.copy() new_data['name'] = 'NewFileName' resp._content = json.dumps(new_data) account_resp = Response() account_resp._content = helpers.account mock_req.side_effect = (resp,account_resp) file_obj.name = 'NewFileName' file_obj.parent_id = 'root' file_obj.save() expected_calls = [ # This is updating the file call(file_obj._api_session.patch, 'accounts/%s/files/%s' % (account.id, file_data['id']), params={}, data={'name': u'NewFileName', 'parent_id': 'root'}, configuration=file_obj._configuration), # This is refreshing the parent resource call(account._api_session.get, 'accounts/%s' % account.id, configuration=account._configuration), ] mock_req.assert_has_calls(expected_calls)
def test_file_delete(): account = Account.create_from_data(json.loads(helpers.account)) file_data = json.loads(helpers.file_data) file_obj = File.create_from_data(file_data, parent_resource=account) with patch('sdk.resources.request') as mock_req: resp = Response() resp.status_code = 204 mock_req.return_value = resp file_obj.delete() mock_req.assert_called_with(file_obj._api_session.delete, ('accounts/%s/files/%s' % (account.id, file_data['id'])), configuration=file_obj._configuration, params={})
def test_file_contents(): account = Account.create_from_data(json.loads(helpers.account)) file_data = json.loads(helpers.file_data) file_obj = File.create_from_data(file_data, parent_resource=account) with patch('sdk.resources.request') as mock_req: resp = Response() resp._content = helpers.file_contents mock_req.return_value = resp file_contents = file_obj.contents() assert isinstance(file_contents, Response) mock_req.assert_called_with(file_obj._api_session.get, ('accounts/%s/files/%s/contents' % (account.id, file_data['id'])), configuration=file_obj._configuration, stream=True)