1
0
mirror of synced 2026-01-25 01:01:56 -05:00
Files
airbyte/airbyte-integrations/connectors/source-mailchimp/unit_tests/test_source.py
Marcos Marx dca2256a7c Bump 2022 license version (#13233)
* Bump year in license short to 2022

* remove protocol from cdk
2022-05-26 15:00:42 -03:00

70 lines
2.2 KiB
Python

#
# Copyright (c) 2022 Airbyte, Inc., all rights reserved.
#
import pytest
import requests
from airbyte_cdk.logger import AirbyteLogger
from source_mailchimp.source import MailChimpAuthenticator, SourceMailchimp
logger = AirbyteLogger()
def test_check_connection_ok(requests_mock, config, data_center):
responses = [
{"json": [], "status_code": 200},
]
requests_mock.register_uri("GET", f"https://{data_center}.api.mailchimp.com/3.0/ping", responses)
ok, error_msg = SourceMailchimp().check_connection(logger, config=config)
assert ok
assert not error_msg
def test_check_connection_error(requests_mock, config, data_center):
requests_mock.register_uri("GET", f"https://{data_center}.api.mailchimp.com/3.0/ping", body=requests.ConnectionError())
ok, error_msg = SourceMailchimp().check_connection(logger, config=config)
assert not ok
assert error_msg
def test_get_server_prefix_ok(requests_mock, access_token, data_center):
responses = [
{"json": {"dc": data_center}, "status_code": 200},
]
requests_mock.register_uri("GET", "https://login.mailchimp.com/oauth2/metadata", responses)
assert MailChimpAuthenticator().get_server_prefix(access_token) == data_center
def test_get_server_prefix_exception(requests_mock, access_token, data_center):
responses = [
{"json": {}, "status_code": 200},
{"status_code": 403},
]
requests_mock.register_uri("GET", "https://login.mailchimp.com/oauth2/metadata", responses)
with pytest.raises(Exception):
MailChimpAuthenticator().get_server_prefix(access_token)
def test_oauth_config(requests_mock, oauth_config, data_center):
responses = [
{"json": {"dc": data_center}, "status_code": 200},
]
requests_mock.register_uri("GET", "https://login.mailchimp.com/oauth2/metadata", responses)
assert MailChimpAuthenticator().get_auth(oauth_config)
def test_apikey_config(apikey_config):
assert MailChimpAuthenticator().get_auth(apikey_config)
def test_wrong_config(wrong_config):
with pytest.raises(Exception):
MailChimpAuthenticator().get_auth(wrong_config)
def test_streams_count(config):
streams = SourceMailchimp().streams(config)
assert len(streams) == 3