def test_list_contacts(self, mock_get): """Assert requests.get calls""" fixtures_path = os.path.join(THIS_DIR, 'fixture_list_contacts.json') with open(fixtures_path, 'r') as f: fixtures_data = json.load(f) config = act.Config() config.API_KEY = 'VALID_API_KEY' cr = act.ContactsResource(config) json_data = cr.get() self.assertEqual(json_data, fixtures_data) json_data = cr.get(ids=None) self.assertEqual(json_data, fixtures_data) json_data = cr.get(ids='ALL') self.assertEqual(json_data, fixtures_data) json_data = cr.get(ids=['1']) self.assertEqual(json_data, fixtures_data) json_data = cr.get(ids='1') self.assertEqual(json_data, fixtures_data) with self.assertRaises(TypeError): # IDs must be passed as strings json_data = cr.get(ids=[1]) with self.assertRaises(TypeError): # IDs must be passed as strings json_data = cr.get(ids=1)
def send_campaign_message(email, campaign_id, message_id, _type, action): """ Send a message to a single recipient. """ config = act.Config() resource = act.CampaignResource(config) json_data = resource.send(email, campaign_id, message_id, _type, action) click.echo(pformat(json_data))
def get_contacts(): """ List all contacts """ config = act.Config() resource = act.ContactsResource(config) json_data = resource.get() click.echo(pformat(json_data))
def get_campaigns(ids): """ Send a message to a single recipient. """ config = act.Config() resource = act.CampaignResource(config) json_data = resource.get(ids) click.echo(pformat(json_data))
def view_message(id): """ View a single message """ config = act.Config() resource = act.MessageResource(config) json_data = resource.get_one(_id=id) click.echo(pformat(json_data))
def delete_message(id): """ Delete a given message """ config = act.Config() resource = act.MessageResource(config) json_data = resource.delete(_id=id) click.echo(pformat(json_data))
def get_messages(ids, page): """ Get many messages. (Note: This method does not seem to currently work. Use `view_message` instead.) """ config = act.Config() resource = act.MessageResource(config) json_data = resource.get_many(ids=ids, page=page) click.echo(pformat(json_data))
def get_lists(): """ Get all lists. """ config = act.Config() resource = act.ListResource(config) json_data = resource.get(full='1') click.echo(pformat(json_data))
def update_campaign_status(campaign_id, draft, send_date): """ Send a message to a single recipient. """ config = act.Config() resource = act.CampaignResource(config) send_date = date_parse(send_date) if isinstance(send_date, str) else send_date status = '0' if draft else '1' json_data = resource.update_status(campaign_id, status, send_date) click.echo(pformat(json_data))
def add_contact(email, first_name, last_name, list_id, tags): """ Add a contact. """ config = act.Config() resource = act.ContactsResource(config) data = { 'email': email, 'first_name': first_name, 'last_name': last_name, 'list_id': [list_id], 'tags': tags, } json_data = resource.create(data) click.echo(pformat(json_data))
def test_delete_contact(self, mock_get): """Assert requests.get calls""" config = act.Config() config.API_KEY = 'VALID_API_KEY' cr = act.ContactsResource(config) result = cr.delete(_id='1') expected = { 'result_code': 1, 'result_message': 'Contact deleted', 'result_output': 'json' } self.assertEqual(result, expected) result = cr.delete(_id='a') expected = { 'result_code': 1, 'result_message': 'Contact deleted', 'result_output': 'json' } self.assertEqual(result, expected)
def create_campaign(name, send_date, draft, public, list_id, message_id, segment_id, campaign_type): """ Send a message to a single recipient. """ config = act.Config() resource = act.CampaignResource(config) data = { 'name': name, 'sdate': date_parse(send_date), 'status': '0' if draft else '1', 'public': '1' if public else '0', 'list_id': [list_id], 'message_id': { message_id: 100 }, 'segmentid': segment_id, 'type': campaign_type } json_data = resource.create(data) click.echo(pformat(json_data))
def test_list_list(self, mock_get): """Assert requests.get calls""" with open(os.path.join(THIS_DIR, 'fixture_list_list.json'), 'r') as f: fixtures_data = json.load(f) config = act.Config() config.API_KEY = 'VALID_API_KEY' resource = act.ListResource(config) json_data = resource.get() self.assertEqual(json_data, fixtures_data) json_data = resource.get(ids=None) self.assertEqual(json_data, fixtures_data) json_data = resource.get(ids='ALL') self.assertEqual(json_data, fixtures_data) json_data = resource.get(ids=['1']) self.assertEqual(json_data, fixtures_data) json_data = resource.get(ids='1') self.assertEqual(json_data, fixtures_data) with self.assertRaises(TypeError): # IDs must be passed as strings json_data = resource.get(ids=[1]) with self.assertRaises(TypeError): # IDs must be passed as strings json_data = resource.get(ids=1) # 'full=1' test case with open(os.path.join(THIS_DIR, 'fixture_list_list_full.json'), 'r') as f: fixtures_data = json.load(f) json_data = resource.get(ids='1', full='1') self.assertEqual(json_data, fixtures_data)
def test_create_contacts(self, mock_post): config = act.Config() config.API_KEY = 'VALID_API_KEY' cr = act.ContactsResource(config) result = cr.create({ 'email': '*****@*****.**', 'first_name': 'Test Account', 'last_name': '2', 'phone': '+1 555-555-5555', 'ip4': '127.0.0.1', 'tags': ['fakeuser', 'testing'], 'list_id': ['1'], }) expected = { 'subscriber_id': 2, 'sendlast_should': 0, 'sendlast_did': 0, 'result_code': 1, 'result_message': 'Contact added', 'result_output': 'json' } self.assertEqual(result, expected) result = cr.create({ 'first_name': 'Test Account', 'last_name': '2', 'phone': '+1 555-555-5555', 'ip4': '127.0.0.1', 'tags': ['fakeuser', 'testing'], 'list_id': ['1'], }) expected = { 'result_code': 0, 'result_message': 'Contact Email Address is not valid.', 'result_output': 'json' } self.assertEqual(result, expected)
def create_message(subject, fromemail, fromname, reply2, priority, list_id, text): """ Create a text message Example: activecampaign_takehome create_message --subject 'Test Message' --fromemail '*****@*****.**' --fromname 'Test Sender 1' --reply2 '*****@*****.**' --priority 5 --list_id 1 --text 'This is a test message' """ config = act.Config() resource = act.MessageResource(config) data = { 'format': 'text', 'textconstructor': 'editor', 'subject': subject, 'fromemail': fromemail, 'fromname': fromname, 'reply2': reply2, 'priority': priority, 'list_id': [list_id], 'text': text, } json_data = resource.create(data=data) click.echo(pformat(json_data))
def test_contacts_init(): config = act.Config() config.ACCOUNT = 'test-account' config.DOMAIN = 'api-us1.com' contacts_resource = act.ContactsResource(config) assert contacts_resource.base_url == 'https://test-account.api-us1.com'
def test_api_init(): config = act.Config() config.ACCOUNT = 'test-account' config.DOMAIN = 'api-us1.com' api = act.Api(config) assert api.base_url == 'https://test-account.api-us1.com'
def test_configure(): config = act.Config() assert config.DOMAIN == 'api-us1.com' assert config.API_OUTPUT == 'json'