예제 #1
0
    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'
예제 #2
0
    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() == ''
예제 #3
0
    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
예제 #4
0
    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() == ''
예제 #5
0
    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]
예제 #6
0
 def test_account_init(self):
     client = ToshlClient('abcd1234')
     account = Account(client)
     assert account.client == client