def test_delete_mandate(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" mandate_id = "12345-12345" mock_object = Starling({ "api_url": mock_url }) requests_mock.delete("{}/api/v1/direct-debit/mandates/{}".format(mock_url, mandate_id), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), status_code=204) mock_object.delete_mandate(mandate_id, access_token=mock_access_token)
def test_delete_savings_goal(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" mock_object = Starling({"api_url": mock_url}) savings_goal_id = "12345-12345" requests_mock.delete( "{}/api/v1/savings-goals/{}".format(mock_url, savings_goal_id), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), status_code=204) mock_object.delete_savings_goal(savings_goal_id, access_token=mock_access_token)
def test_get_contacts(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" mock_object = Starling({"api_url": mock_url}) with open("test/responses/v1-get-contacts.json") as f: expected_response = json.load(f) requests_mock.get( "{}/api/v1/contacts".format(mock_url), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), json=expected_response) mocked_response = mock_object.get_contacts(mock_access_token) assert expected_response == mocked_response
def test_delete_contact_account(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" contact_id = "fc17e7d5-ff2c-4a3c-8f64-9ac93d80de62" mock_object = Starling({"api_url": mock_url}) requests_mock.delete( "{}/api/v1/contacts/{}".format(mock_url, contact_id), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), status_code=204) mocked_response = mock_object.delete_contact( contact_id, access_token=mock_access_token) assert mocked_response == {}
def test_refresh_access_token(requests_mock): mock_object = Starling({ "oauth_url": "http://localhost", "client_id": "myclientid", "client_secret": "myclientsecret", "redirect_uri": "redirect" }) with open("test/responses/v1-refresh-access-token.json") as f: expected_response = json.load(f) requests_mock.post("http://localhost/oauth/access-token", request_headers=oauth_headers(), json=expected_response) mock_response = mock_object.refresh_access_token( "11tyjapK8Vx3mBbCMkCrTmlbxjVRSny16MmbvGSvRlwhKYmFC4dbZetV0nTcXGjT") assert expected_response == mock_response
def test_get_mandate(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" mandate_id = "12345-12345" mock_object = Starling({ "api_url": mock_url }) with open("test/responses/v1-get-mandate.json") as f: expected_response = json.load(f) requests_mock.get("{}/api/v1/direct-debit/mandates/{}".format(mock_url, mandate_id), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), json=expected_response) mocked_response = mock_object.get_mandate(mandate_id, access_token=mock_access_token) assert expected_response == mocked_response
def test_get_access_token(requests_mock): mock_object = Starling({ "oauth_url": "http://localhost", "client_id": "myclientid", "client_secret": "myclientsecret", "redirect_uri": "redirect" }) print(os.getcwd()) with open("test/responses/v1-get-access-token.json") as f: expected_response = json.load(f) requests_mock.post("http://localhost/oauth/access-token", request_headers=oauth_headers(), json=expected_response) mock_response = mock_object.get_access_token("code") assert expected_response == mock_response
def test_starling_client(requests_mock): """test static access token provided in client instance""" mock_url = "http://localhost" mock_access_token = "0123456789" mock_object = Starling({ "api_url": mock_url }) with open("test/responses/v1-get-accounts.json") as f: expected_response = json.load(f) requests_mock.get("{}/api/v1/accounts".format(mock_url), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), json=expected_response) mocked_response = mock_object.get_account(mock_access_token) assert expected_response == mocked_response
def test_get_contact_account(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" contact_id = "fc17e7d5-ff2c-4a3c-8f64-9ac93d80de62" mock_object = Starling({"api_url": mock_url}) with open("test/responses/v1-get-contact-account.json") as f: expected_response = json.load(f) requests_mock.get( "{}/api/v1/contacts/{}".format(mock_url, contact_id), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), json=expected_response) mocked_response = mock_object.get_contact_account( contact_id, access_token=mock_access_token) assert expected_response == mocked_response
def test_get_savings_goal(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" mock_object = Starling({"api_url": mock_url}) savings_goal_id = "12345-12345" with open("test/responses/v1-get-savings-goal.json") as f: expected_response = json.load(f) requests_mock.get( "{}/api/v1/savings-goals/{}".format(mock_url, savings_goal_id), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), json=expected_response) mocked_response = mock_object.get_savings_goal( savings_goal_id, access_token=mock_access_token) assert expected_response == mocked_response
def test_get_transaction_with_unspecified_source(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" mock_object = Starling({"api_url": mock_url}) transaction_id = "32b4d093-f3b3-45da-9f89-d6a1395ab397" with open("test/responses/v1-get-transaction.json") as f: expected_response = json.load(f) requests_mock.get( "{}/api/v1/transactions/{}".format(mock_url, transaction_id), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), json=expected_response) mocked_response = mock_object.get_transaction( transaction_id, "", access_token=mock_access_token) assert expected_response == mocked_response
def test_create_contact_account(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" name = "Mickey Mouse" account_number = "87654321" sort_code = "60-83-71" mock_object = Starling({"api_url": mock_url}) requests_mock.post( "{}/api/v1/contacts".format(mock_url), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), status_code=202) mocked_response = mock_object.create_contact( name, account_number, sort_code, access_token=mock_access_token) print(mocked_response) assert mocked_response == {}
def test_get_specific_card_transaction(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" mock_object = Starling({"api_url": mock_url}) transaction_id = "77b7d507-6546-4301-a841-fbf570de65c6" source = "MASTER_CARD" with open("test/responses/v1-get-transaction-card.json") as f: expected_response = json.load(f) requests_mock.get( "{}/api/v1/transactions/mastercard/{}".format( mock_url, transaction_id), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), json=expected_response) mocked_response = mock_object.get_transaction( transaction_id, source, access_token=mock_access_token) assert expected_response == mocked_response
def test_get_transactions(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" mock_object = Starling({"api_url": mock_url}) from_date = "2017-03-01" to_date = "2017-03-06" with open("test/responses/v1-get-transactions.json") as f: expected_response = json.load(f) requests_mock.get( "{}/api/v1/transactions?from={}&to={}".format( mock_url, from_date, to_date), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), json=expected_response) mocked_response = mock_object.get_transactions( "2017-03-01", "2017-03-06", "", access_token=mock_access_token) assert expected_response == mocked_response
def test_get_outgoing_fps_transaction(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" mock_object = Starling({"api_url": mock_url}) transaction_id = "b5c65fd2-1795-4262-93f0-f0490759bf1f" source = "FASTER_PAYMENTS_OUT" with open("test/responses/v1-get-transaction-fps-out.json") as f: expected_response = json.load(f) requests_mock.get( "{}/api/v1/transactions/fps/out/{}".format(mock_url, transaction_id), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), json=expected_response) mocked_response = mock_object.get_transaction( transaction_id, source, access_token=mock_access_token) assert expected_response == mocked_response
def test_add_money_to_savings_goal(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" mock_object = Starling({"api_url": mock_url}) savings_goal_id = "12345-12345" transaction_id = "54321-54321" minor_amount = 111 savings_currency = "BRL" requests_mock.put( "{}/api/v1/savings-goals/{}/add-money/{}".format( mock_url, savings_goal_id, transaction_id), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), status_code=202) mock_object.add_money_to_savings_goal(savings_goal_id, transaction_id, minor_amount, currency=savings_currency, access_token=mock_access_token)
def test_make_local_payment(requests_mock): mock_url = "http://localhost" mock_access_token = "0123456789" mock_object = Starling({"api_url": mock_url}) destination_account_uid = "11eb8d9b-386a-43ba-825d-7edee5c6b01a" reference = "dinner" amount = "10" requests_mock.post( "{}/api/v1/payments/local".format(mock_url), headers=default_headers(mock_access_token), request_headers=expect_authorization_header(mock_access_token), status_code=202) try: mock_object.make_local_payment(destination_account_uid, reference, amount, access_token=mock_access_token) assert True except: assert False