def test_links_create_with_key_cert(api_session): with patch("belvo.resources.links.read_file_to_b64") as mocked_b64: mocked_b64.return_value = "123b64file123" links = resources.Links(api_session) links.session.post = MagicMock() links.create( "fake-bank", "fake-user", "fake-password", certificate="/path/to/cert", private_key="/path/to/key", ) links.session.post.assert_called_with( "/api/links/", data={ "institution": "fake-bank", "username": "******", "password": "******", "save_data": True, "certificate": "123b64file123", "private_key": "123b64file123", }, raise_exception=False, )
def test_links_patch_can_set_access_mode(api_session): link = resources.Links(api_session) link.session.patch = MagicMock() link.patch("fake-link", access_mode=AccessMode.SINGLE) link.session.patch.assert_called_with( "/api/links/fake-link/", data={"access_mode": AccessMode.SINGLE.value}, raise_exception=False, )
def test_link_token(api_session): link = resources.Links(api_session) link.session.post = MagicMock() link.token(link="fake-link-uuid", scopes="read_links,write_links") link.session.post.assert_called_with( "/api/token/", data={ "id": "monty", "password": "******", "scopes": "read_links,write_links", "link_id": "fake-link-uuid", }, raise_exception=False, )
def test_links_create_sends_token_if_given(api_session): link = resources.Links(api_session) link.session.post = MagicMock() link.create("fake-bank", "fake-user", "fake-password", token="fake-token") link.session.post.assert_called_with( "/api/links/", data={ "institution": "fake-bank", "username": "******", "password": "******", "save_data": True, "token": "fake-token", }, raise_exception=False, )
def test_links_create_can_set_access_mode(api_session, mode): link = resources.Links(api_session) link.session.post = MagicMock() link.create("fake-bank", "fake-user", "fake-password", access_mode=mode) link.session.post.assert_called_with( "/api/links/", data={ "institution": "fake-bank", "username": "******", "password": "******", "save_data": True, "access_mode": mode.value, }, raise_exception=False, )
def test_links_create_with_external_id(api_session, external_id): link = resources.Links(api_session) link.session.post = MagicMock() link.create("fake-bank", "fake-user", "fake-password", external_id=external_id) link.session.post.assert_called_with( "/api/links/", data={ "institution": "fake-bank", "username": "******", "password": "******", "external_id": external_id, "save_data": True, }, raise_exception=False, )
def test_links_update_password(api_session): link = resources.Links(api_session) link.session.put = MagicMock() link.update("fake-link-uuid", password="******", password2="fake-pw2", token="fake-token") link.session.put.assert_called_with( "/api/links/", id="fake-link-uuid", data={ "password": "******", "save_data": True, "password2": "fake-pw2", "token": "fake-token", }, raise_exception=False, )
def test_links_create_sends_username3_if_given(api_session): links = resources.Links(api_session) links.session.post = MagicMock() links.create( "fake-bank", "fake-user", "fake-password", username2="fake-user-two", username3="fake-user-three", ) links.session.post.assert_called_with( "/api/links/", data={ "institution": "fake-bank", "username": "******", "username2": "fake-user-two", "username3": "fake-user-three", "password": "******", "save_data": True, }, raise_exception=False, )
def test_widget_token(api_session): link = resources.Links(api_session) link.session.post = MagicMock() widget = { "branding": { "company_logo": "https://acme.corp/fancy_logo.bmp", "company_color": "#eb34e1", "company_benefit_header": "Lorem ipsum", "company_benefit_content": "Lorem ipsum", "opportunity_loss": "Lorem ipsum", "company_name": "Acme Corp. SL", } } link.token(link="fake-link-uuid", scopes="read_links,write_links", widget=widget) link.session.post.assert_called_with( "/api/token/", data={ "id": "monty", "password": "******", "scopes": "read_links,write_links", "link_id": "fake-link-uuid", "widget": { "branding": { "company_logo": "https://acme.corp/fancy_logo.bmp", "company_color": "#eb34e1", "company_benefit_header": "Lorem ipsum", "company_benefit_content": "Lorem ipsum", "opportunity_loss": "Lorem ipsum", "company_name": "Acme Corp. SL", } }, }, raise_exception=False, )