def test_search_accounts_successful_multiple_accounts(self, mock_request): mock_response = mock.Mock() expected_dict = [ { "id": "42", "name": "Account Test", "balance": 3000 }, { "id": "123", "name": "Test Found", "balance": 22000 } ] mock_response.json.return_value = expected_dict mock_response.status_code = 200 mock_request.return_value = mock_response client = ToshlClient('abcd1234') account = Account(client) account_found = account.search('Test Found') mock_request.assert_called_once_with( headers={'Authorization': 'Bearer abcd1234'}, method='GET', params=None, url='https://api.toshl.com/accounts') assert account_found is not None assert account_found == '123'
def test_merge_account_successful(self, mock_request): accounts_list = ['1', '2'] dest_account = '2' json_payload = { 'accounts': accounts_list, 'account': dest_account } mock_response = mock.Mock() mock_response.json.return_value = '' mock_response.status_code = 204 mock_request.return_value = mock_response client = ToshlClient('abcd1234') account = Account(client) response = account.merge(accounts_list, dest_account) mock_request.assert_called_once_with( headers={ 'Authorization': 'Bearer abcd1234', 'Content-Type': 'application/json' }, method='POST', params=None, url='https://api.toshl.com/accounts/merge', json=json_payload) assert response.json() == ''
def test_update_account_successful(self, mock_request): json_payload = { 'name': 'Test Account', 'currency': { 'code': 'GBP' }, 'extra': { 'test': 'foo' } } mock_response = mock.Mock() mock_response.status_code = 200 mock_response.json.return_value = json_payload mock_response.headers = {'Location': '/accounts/1'} mock_request.return_value = mock_response client = ToshlClient('abcd1234') account_client = Account(client) response = account_client.update('1', json_payload) mock_request.assert_called_once_with( headers={ 'Authorization': 'Bearer abcd1234', 'Content-Type': 'application/json' }, method='PUT', params=None, url='https://api.toshl.com/accounts/1', json=json_payload) assert response == json_payload
def test_delete_account_successful(self, mock_request): mock_response = mock.Mock() mock_response.json.return_value = '' mock_response.status_code = 204 mock_request.return_value = mock_response client = ToshlClient('abcd1234') account = Account(client) response = account.delete('1') mock_request.assert_called_once_with( headers={'Authorization': 'Bearer abcd1234'}, method='DELETE', params=None, url='https://api.toshl.com/accounts/1') assert response.json() == ''
def test_list_accounts_successful(self, mock_request): mock_response = mock.Mock() expected_dict = { "id": "42", "name": "Account Test", "balance": 3000, "initial_balance": 3000, "currency": { "code": "USD", "rate": 1, "fixed": False }, "median": { "expenses": 55, "incomes": 1300 }, "status": "active", "order": 0, "modified": "2012-09-04T13:55:15Z", "goal": { "amount": 63570, "start": "2013-07-01", "end": "2015-07-01" } } mock_response.json.return_value = expected_dict mock_response.status_code = 200 mock_request.return_value = mock_response client = ToshlClient('abcd1234') account = Account(client) response = account.list() mock_request.assert_called_once_with( headers={'Authorization': 'Bearer abcd1234'}, method='GET', params=None, url='https://api.toshl.com/accounts') assert response == [expected_dict]
def test_account_init(self): client = ToshlClient('abcd1234') account = Account(client) assert account.client == client