def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() self.list = self.aweber.load_from_url('/accounts/1/lists/303449') self.account = self.aweber.load_from_url('/accounts/1') self.custom_field = self.aweber.load_from_url( '/accounts/1/lists/303449/custom_fields/1')
def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() sub_url = '/accounts/1/lists/303449/subscribers/2' self.subscriber = self.aweber.load_from_url(sub_url) self.subscriber.name = 'Gary Oldman' self.subscriber.custom_fields['New Custom Field'] = 'Cookies'
class TestAWeberCollection(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() self.lists = self.aweber.load_from_url('/accounts/1/lists') self.aweber.adapter.requests = [] def test_should_be_a_collection(self): self.assertTrue(type(self.lists), AWeberCollection) def test_should_have_24_lists(self): self.assertTrue(len(self.lists), 24) def test_should_be_able_get_each_via_offset(self): for i in range(0, 23): list = self.lists[i] self.assertEqual(type(list), AWeberEntry) self.assertEqual(list.type, 'list') def test_should_be_able_to_iterate_on_collection(self): list_number = 0 for list in self.lists: self.assertEqual(type(list), AWeberEntry) self.assertEqual(list.type, 'list') list_number += 1 self.assertEqual(list_number, 24) def test_should_support_get_by_id(self): list = self.lists.get_by_id(303449) self.assertEqual(type(list), AWeberEntry) self.assertEqual(list.type, 'list') self.assertEqual(list.id, 303449) def test_should_support_find_method(self): base_url = '/accounts/1/lists/303449/subscribers' subscriber_collection = self.aweber.load_from_url(base_url) self.aweber.adapter.requests = [] subscribers = subscriber_collection.find(email='*****@*****.**') request = self.aweber.adapter.requests[0] assert subscribers != False assert isinstance(subscribers, AWeberCollection) assert len(subscribers) == 1 assert subscribers[0].self_link == \ 'https://api.aweber.com/1.0/accounts/1/lists/303449/subscribers/50205517' assert request['url'] == \ '{0}?ws.op=find&email=joe%40example.com'.format(base_url) def test_find_should_handle_errors(self): base_url = '/accounts/1/lists/303449/subscribers' subscriber_collection = self.aweber.load_from_url(base_url) self.assertRaises(APIException, subscriber_collection.find, name='joe') def test_should_create_entries_with_correct_url(self): base_url = '/accounts/1' account = self.aweber.load_from_url(base_url) subscribers = account.findSubscribers(email='*****@*****.**') for subscriber in subscribers: assert subscriber.url == subscriber.self_link.replace(API_BASE, '')
class TestGettingParentEntry(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() self.list = self.aweber.load_from_url('/accounts/1/lists/303449') self.account = self.aweber.load_from_url('/accounts/1') self.custom_field = self.aweber.load_from_url('/accounts/1/lists/303449/custom_fields/1') def test_should_be_able_get_parent_entry(self): entry = self.list.get_parent_entry() def test_list_parent_should_be_account(self): entry = self.list.get_parent_entry() self.assertEqual(type(entry), AWeberEntry) self.assertEqual(entry.type, 'account') def test_custom_field_parent_should_be_list(self): entry = self.custom_field.get_parent_entry() self.assertEqual(type(entry), AWeberEntry) self.assertEqual(entry.type, 'list') def test_account_parent_should_be_none(self): entry = self.account.get_parent_entry() self.assertEqual(entry, None)
class TestGettingParentEntry(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() self.list = self.aweber.load_from_url('/accounts/1/lists/303449') self.account = self.aweber.load_from_url('/accounts/1') self.custom_field = self.aweber.load_from_url( '/accounts/1/lists/303449/custom_fields/1') def test_should_be_able_get_parent_entry(self): entry = self.list.get_parent_entry() def test_list_parent_should_be_account(self): entry = self.list.get_parent_entry() self.assertEqual(type(entry), AWeberEntry) self.assertEqual(entry.type, 'account') def test_custom_field_parent_should_be_list(self): entry = self.custom_field.get_parent_entry() self.assertEqual(type(entry), AWeberEntry) self.assertEqual(entry.type, 'list') def test_account_parent_should_be_none(self): entry = self.account.get_parent_entry() self.assertEqual(entry, None)
def __init__(self): # replace XXX with your keys consumer_key = 'AzjDMRiX4wbhtZEdky23tDbv' consumer_secret = 'PibOkYKyhTQrLKIAKpUdfNxo9cOmsf8Zb7BIRkbY' self.access_token = 'AgzINUhc1zx755e91a2nnCnc' self.access_secret = 'qMATjcw05qw0rk8viqpoGTCG2AJlKzuZKcptYrlk' self.application = AWeberAPI(consumer_key, consumer_secret) self.account = self.application.get_account(self.access_token, self.access_secret)
def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() subscriber_url = '/accounts/1/lists/303449/subscribers/1' new_list_url = '/accounts/1/lists/505454' self.subscriber = self.aweber.load_from_url(subscriber_url) self.subscriber._diff['name'] = 'Joe Schmoe' self.list = self.aweber.load_from_url(new_list_url) self.move_subscriber()
def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() cf_url = '/accounts/1/lists/303449/custom_fields' self.cf = self.aweber.load_from_url(cf_url) self.aweber.adapter.requests = [] self.resp = self.cf.create(name='Wedding Song') self.create_req = self.aweber.adapter.requests[0] self.get_req = self.aweber.adapter.requests[1]
def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() url = '/accounts/1/lists/303449/any_collection' self.any_collection = self.aweber.load_from_url(url) self.aweber.adapter.requests = [] self.resp = self.any_collection.create( a_string='Bob', a_dict={'Color': 'blue'}, a_list=['apple']) self.create_req = self.aweber.adapter.requests[0] self.get_req = self.aweber.adapter.requests[1]
class TestMovingSubscribers(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() subscriber_url = '/accounts/1/lists/303449/subscribers/1' new_list_url = '/accounts/1/lists/505454' self.subscriber = self.aweber.load_from_url(subscriber_url) self.subscriber._diff['name'] = 'Joe Schmoe' self.list = self.aweber.load_from_url(new_list_url) self.move_subscriber() def move_subscriber(self, **kwargs): self.aweber.adapter.requests = [] self.resp = self.subscriber.move(self.list, **kwargs) self.move_req = self.aweber.adapter.requests[0] self.get_req = self.aweber.adapter.requests[1] def test_returned_true(self): self.assertTrue(self.resp) def test_should_have_requested_move_with_post(self): self.assertEqual(self.move_req['method'], 'POST') def test_should_have_requested_move_on_subscriber(self): self.assertEqual(self.move_req['url'], self.subscriber.url) def test_should_have_requested_move_with_correct_parameters(self): expected_params = {'ws.op': 'move', 'list_link': self.list.self_link} self.assertEqual(self.move_req['data'], expected_params) def test_should_make_two_requests(self): self.assertEqual(len(self.aweber.adapter.requests), 2) def test_should_refresh_subscriber_resource(self): self.assertEqual(self.get_req['method'], 'GET') self.assertEqual(self.get_req['url'], '/accounts/1/lists/505454/subscribers/3') def test_should_reset_diff(self): self.assertEqual(self.subscriber._diff, {}) def test_should_accept_last_followup_message_number_sent(self): self.move_subscriber(last_followup_message_number_sent=999) expected_params = { 'ws.op': 'move', 'list_link': self.list.self_link, 'last_followup_message_number_sent': 999 } self.assertEqual(self.move_req['data'], expected_params)
class TestMovingSubscribers(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() subscriber_url = '/accounts/1/lists/303449/subscribers/1' new_list_url = '/accounts/1/lists/505454' self.subscriber = self.aweber.load_from_url(subscriber_url) self.subscriber._diff['name'] = 'Joe Schmoe' self.list = self.aweber.load_from_url(new_list_url) self.move_subscriber() def move_subscriber(self, **kwargs): self.aweber.adapter.requests = [] self.resp = self.subscriber.move(self.list, **kwargs) self.move_req = self.aweber.adapter.requests[0] self.get_req = self.aweber.adapter.requests[1] def test_returned_true(self): self.assertTrue(self.resp) def test_should_have_requested_move_with_post(self): self.assertEqual(self.move_req['method'], 'POST') def test_should_have_requested_move_on_subscriber(self): self.assertEqual(self.move_req['url'] , self.subscriber.url) def test_should_have_requested_move_with_correct_parameters(self): expected_params = {'ws.op': 'move', 'list_link': self.list.self_link} self.assertEqual(self.move_req['data'], expected_params) def test_should_make_two_requests(self): self.assertEqual(len(self.aweber.adapter.requests), 2) def test_should_refresh_subscriber_resource(self): self.assertEqual(self.get_req['method'], 'GET') self.assertEqual(self.get_req['url'] , '/accounts/1/lists/505454/subscribers/3') def test_should_reset_diff(self): self.assertEqual(self.subscriber._diff, {}) def test_should_accept_last_followup_message_number_sent(self): self.move_subscriber(last_followup_message_number_sent=999) expected_params = {'ws.op': 'move', 'list_link': self.list.self_link, 'last_followup_message_number_sent': 999} self.assertEqual(self.move_req['data'], expected_params)
class TestCreateMethod(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() url = '/accounts/1/lists/303449/any_collection' self.any_collection = self.aweber.load_from_url(url) self.aweber.adapter.requests = [] self.resp = self.any_collection.create( a_string='Bob', a_dict={'Color': 'blue'}, a_list=['apple']) self.create_req = self.aweber.adapter.requests[0] self.get_req = self.aweber.adapter.requests[1] def test_should_make_request_with_correct_parameters(self): expected_params = {'ws.op': 'create', 'a_string': 'Bob', 'a_dict': json.dumps({'Color': 'blue'}), 'a_list': json.dumps(['apple'])} self.assertEqual(self.create_req['data'], expected_params) def test_should_make_two_requests(self): self.assertEqual(len(self.aweber.adapter.requests), 2) def test_should_have_requested_create_on_cf(self): self.assertEqual(self.create_req['url'] , self.any_collection.url) def test_should_have_requested_create_with_post(self): self.assertEqual(self.create_req['method'], 'POST') def test_should_refresh_created_resource(self): self.assertEqual(self.get_req['method'], 'GET') self.assertEqual(self.get_req['url'] , '/accounts/1/lists/303449/any_collection/1')
class TestAWeberCollection(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() self.lists = self.aweber.load_from_url('/accounts/1/lists') def test_should_be_a_collection(self): self.assertTrue(type(self.lists), AWeberCollection) def test_should_have_24_lists(self): self.assertTrue(len(self.lists), 24) def test_should_be_able_get_each_via_offset(self): for i in range(0, 23): list = self.lists[i] self.assertEqual(type(list), AWeberEntry) self.assertEqual(list.type, 'list') def test_should_be_able_to_iterate_on_collection(self): list_number = 0 for list in self.lists: self.assertEqual(type(list), AWeberEntry) self.assertEqual(list.type, 'list') list_number += 1 self.assertEqual(list_number, 24) def test_should_support_get_by_id(self): list = self.lists.get_by_id(303449) self.assertEqual(type(list), AWeberEntry) self.assertEqual(list.type, 'list') self.assertEqual(list.id, 303449)
class SubscriberTestCase(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() sub_url = '/accounts/1/lists/303449/subscribers/1' self.subscriber = self.aweber.load_from_url(sub_url)
class TestCreatingCustomFields(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() cf_url = '/accounts/1/lists/303449/custom_fields' self.cf = self.aweber.load_from_url(cf_url) self.aweber.adapter.requests = [] self.resp = self.cf.create(name='Wedding Song') self.create_req = self.aweber.adapter.requests[0] self.get_req = self.aweber.adapter.requests[1] def test_returned_true(self): self.assertTrue(self.resp) def test_should_have_requested_create_with_post(self): self.assertEqual(self.create_req['method'], 'POST') def test_should_have_requested_create_on_cf(self): self.assertEqual(self.create_req['url'], self.cf.url) def test_should_have_requested_move_with_correct_parameters(self): expected_params = {'ws.op': 'create', 'name': 'Wedding Song'} self.assertEqual(self.create_req['data'], expected_params) def test_should_make_two_requests(self): self.assertEqual(len(self.aweber.adapter.requests), 2) def test_should_refresh_cf_resource(self): self.assertEqual(self.get_req['method'], 'GET') self.assertEqual(self.get_req['url'], '/accounts/1/lists/303449/custom_fields/2')
def setUp(self): self.aweber = AWeberAPI("1", "2") self.aweber.adapter = MockAdapter() sub_url = "/accounts/1/lists/303449/subscribers/2" self.subscriber = self.aweber.load_from_url(sub_url) self.subscriber.name = "Gary Oldman" self.subscriber.custom_fields["New Custom Field"] = "Cookies"
def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() sub_url = '/accounts/1/lists/303449/subscribers/2' self.subscriber = self.aweber.load_from_url(sub_url) self.aweber.adapter.requests = [] self.response = self.subscriber.delete() self.req = self.aweber.adapter.requests[0]
class TestMovingSubscribers(TestCase): def setUp(self): self.aweber = AWeberAPI("1", "2") self.aweber.adapter = MockAdapter() subscriber_url = "/accounts/1/lists/303449/subscribers/1" new_list_url = "/accounts/1/lists/505454" self.subscriber = self.aweber.load_from_url(subscriber_url) self.subscriber._diff["name"] = "Joe Schmoe" self.list = self.aweber.load_from_url(new_list_url) self.move_subscriber() def move_subscriber(self, **kwargs): self.aweber.adapter.requests = [] self.resp = self.subscriber.move(self.list, **kwargs) self.move_req = self.aweber.adapter.requests[0] self.get_req = self.aweber.adapter.requests[1] def test_returned_true(self): self.assertTrue(self.resp) def test_should_have_requested_move_with_post(self): self.assertEqual(self.move_req["method"], "POST") def test_should_have_requested_move_on_subscriber(self): self.assertEqual(self.move_req["url"], self.subscriber.url) def test_should_have_requested_move_with_correct_parameters(self): expected_params = {"ws.op": "move", "list_link": self.list.self_link} self.assertEqual(self.move_req["data"], expected_params) def test_should_make_two_requests(self): self.assertEqual(len(self.aweber.adapter.requests), 2) def test_should_refresh_subscriber_resource(self): self.assertEqual(self.get_req["method"], "GET") self.assertEqual(self.get_req["url"], "/accounts/1/lists/505454/subscribers/3") def test_should_reset_diff(self): self.assertEqual(self.subscriber._diff, {}) def test_should_accept_last_followup_message_number_sent(self): self.move_subscriber(last_followup_message_number_sent=999) expected_params = {"ws.op": "move", "list_link": self.list.self_link, "last_followup_message_number_sent": 999} self.assertEqual(self.move_req["data"], expected_params)
class TestFailedSubscriberDelete(TestCase): def setUp(self): self.aweber = AWeberAPI("1", "2") self.aweber.adapter = MockAdapter() sub_url = "/accounts/1/lists/303449/subscribers/2" self.subscriber = self.aweber.load_from_url(sub_url) def test_should_raise_exception_when_failing(self): self.assertRaises(APIException, self.subscriber.delete)
class TestFailedSubscriberDelete(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() sub_url = '/accounts/1/lists/303449/subscribers/2' self.subscriber = self.aweber.load_from_url(sub_url) def test_should_raise_exception_when_failing(self): self.assertRaises(APIException, self.subscriber.delete)
def set_list_names(widgets): """Writes list names to registry record. :param widgets: object to read data from it :type widgets: Widgets object """ consumer_key = widgets['consumer_key'].value consumer_secret = widgets['consumer_secret'].value access_token = widgets['access_token'].value access_secret = widgets['access_secret'].value aweber = AWeberAPI(consumer_key, consumer_secret) account = aweber.get_account(access_token, access_secret) api.portal.set_registry_record( 'niteoweb.aweber.available_lists_record', [l.name for l in account.lists], )
def setUp(self): self.aweber = AWeberAPI("1", "2") self.aweber.adapter = MockAdapter() subscriber_url = "/accounts/1/lists/303449/subscribers/1" new_list_url = "/accounts/1/lists/505454" self.subscriber = self.aweber.load_from_url(subscriber_url) self.subscriber._diff["name"] = "Joe Schmoe" self.list = self.aweber.load_from_url(new_list_url) self.move_subscriber()
def connect_to_AWeber_account(self): app_id = '7XXXXXX8' authorization_url = 'https://auth.aweber.com/1.0/oauth/authorize_app/%s' % app_id print 'Go to this url in your browser: %s' % authorization_url authorization_code = raw_input('Type code here: ') auth = AWeberAPI.parse_authorization_code(authorization_code) consumer_key, consumer_secret, access_key, access_secret = auth print auth return auth
def connect_to_AWeber_account(self): app_id = '98a30a69' authorization_url = 'https://auth.aweber.com/1.0/oauth/authorize_app/%s' % app_id print 'Go to this url in your browser: %s' % authorization_url authorization_code = raw_input('Type code here: ') auth = AWeberAPI.parse_authorization_code(authorization_code) consumer_key, consumer_secret, access_key, access_secret = auth print auth return auth
def __init__(self): # replace XXX with your keys consumer_key = 'Ak7W3K2vE3pODdOyag0t5X79' consumer_secret = 'ekxdnHs8aPgHIlI6RBLk3BynpylWEHCzSr4042vP' self.access_token = 'Agv7HS28IZoTDI05Zt1LuLIt' self.access_secret = 's2NucR72EL8S9KKmlriAhNNCP04mG1tqOsCkII5O' self.application = AWeberAPI(consumer_key, consumer_secret) self.account = self.application.get_account(self.access_token, self.access_secret) print self.application print self.account
class TestSavingInvalidSubscriberData(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() sub_url = '/accounts/1/lists/303449/subscribers/2' self.subscriber = self.aweber.load_from_url(sub_url) self.subscriber.name = 'Gary Oldman' self.subscriber.custom_fields['New Custom Field'] = 'Cookies' def test_save_failed(self): self.assertRaises(APIException, self.subscriber.save)
class TestSavingInvalidSubscriberData(TestCase): def setUp(self): self.aweber = AWeberAPI("1", "2") self.aweber.adapter = MockAdapter() sub_url = "/accounts/1/lists/303449/subscribers/2" self.subscriber = self.aweber.load_from_url(sub_url) self.subscriber.name = "Gary Oldman" self.subscriber.custom_fields["New Custom Field"] = "Cookies" def test_save_failed(self): self.assertRaises(APIException, self.subscriber.save)
class TestWhenCreatingCustomFieldsFails(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() cf_url = '/accounts/1/lists/505454/custom_fields' self.cf = self.aweber.load_from_url(cf_url) self.aweber.adapter.requests = [] def test_should_raise_exception(self): self.assertRaises(APIException, self.cf.create, name='Duplicate Name')
def getKey(): url = 'http://localhost:5000' consumer_key = 'AkahU7LuENNRNz4YEU1t0gYf' consumer_secret = 'zgyp6JxNMDWH0uqgdet8MQy4qb3UZh7S6dDsEnwX' aweber = AWeberAPI(consumer_key, consumer_secret) request_token, request_token_secret = aweber.get_request_token(url + '/callback') print request_token print request_token_secret print aweber.authorize_url redirect(authorization_url) aweber.user.verifier = verifier aweber.user.request_token = request_token aweber.user.token_secret = request_token_secret access_token, access_token_secret = aweber.get_access_token() print access_token
class WhenGettingAnAccount(TestCase): def setUp(self): self.aweber = AWeberAPI(key, secret) self.aweber.adapter = MockAdapter() self.access_token = '1234' self.token_secret = 'abcd' def test_when_getting_an_account(self): account = self.aweber.get_account(self.access_token, self.token_secret) self.assertEqual(type(account), AWeberEntry) self.assertEqual(account.id, 1) self.assertEqual(account.type, 'account')
class TestFailedSubscriberDelete(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() sub_url = '/accounts/1/lists/303449/subscribers/2' self.subscriber = self.aweber.load_from_url(sub_url) self.aweber.adapter.requests = [] self.response = self.subscriber.delete() self.req = self.aweber.adapter.requests[0] def test_should_have_failed(self): self.assertFalse(self.response)
class TestAWeberAccountEntry(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() self.account = self.aweber.load_from_url('/accounts/1') def test_should_be_an_entry(self): self.assertEqual(type(self.account), AWeberEntry) self.assertEqual(self.account.type, 'account') def test_should_be_able_get_web_forms(self): forms = self.account.get_web_forms()
class WhenGettingAnAccount(TestCase): def setUp(self): self.aweber = AWeberAPI(key, secret) self.aweber.adapter = MockAdapter() self.access_token = "1234" self.token_secret = "abcd" def test_when_getting_an_account(self): account = self.aweber.get_account(self.access_token, self.token_secret) self.assertEqual(type(account), AWeberEntry) self.assertEqual(account.id, 1) self.assertEqual(account.type, "account")
def subscribe_to_aweber_mailinglist(email, fullname): """Subscribe a member to Aweber mailinglist. :param email: email address of user to subscribe :type email: string :param fullname: full name of the user related to previous argument :type fullname: string """ consumer_key = api.portal.get_registry_record( 'niteoweb.aweber.interfaces.IAweberSettings.consumer_key' ) consumer_secret = api.portal.get_registry_record( 'niteoweb.aweber.interfaces.IAweberSettings.consumer_secret' ) access_token = api.portal.get_registry_record( 'niteoweb.aweber.interfaces.IAweberSettings.access_token' ) access_secret = api.portal.get_registry_record( 'niteoweb.aweber.interfaces.IAweberSettings.access_secret' ) list_name = api.portal.get_registry_record( 'niteoweb.aweber.interfaces.IAweberSettings.list_name' ) aweber = AWeberAPI(consumer_key, consumer_secret) account = aweber.get_account(access_token, access_secret) list_ = account.lists.find(name=list_name)[0] list_url = '/accounts/%s/lists/%s' % (account.id, list_.id) list_ = account.load_from_url(list_url) # create a subscriber params = { 'email': email, 'name': fullname, } list_.subscribers.create(**params)
class TestAWeberEntry(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() self.list = self.aweber.load_from_url('/accounts/1/lists/303449') def test_should_be_an_entry(self): self.assertEqual(type(self.list), AWeberEntry) self.assertEqual(self.list.type, 'list') def test_should_have_id(self): self.assertEqual(self.list.id, 303449) def test_should_have_other_properties(self): self.assertEqual(self.list.name, 'default303449') def test_should_have_child_collections(self): campaigns = self.list.campaigns self.assertEqual(type(campaigns), AWeberCollection) def test_findSubscribers_should_handle_errors(self): account = self.aweber.load_from_url('/accounts/1') self.assertRaises(APIException, account.findSubscribers, name='bob')
class TestAWeberEntry(TestCase): def setUp(self): self.aweber = AWeberAPI("1", "2") self.aweber.adapter = MockAdapter() self.list = self.aweber.load_from_url("/accounts/1/lists/303449") def test_should_be_an_entry(self): self.assertEqual(type(self.list), AWeberEntry) self.assertEqual(self.list.type, "list") def test_should_have_id(self): self.assertEqual(self.list.id, 303449) def test_should_have_other_properties(self): self.assertEqual(self.list.name, "default303449") def test_should_have_child_collections(self): campaigns = self.list.campaigns self.assertEqual(type(campaigns), AWeberCollection) def test_findSubscribers_should_handle_errors(self): account = self.aweber.load_from_url("/accounts/1") self.assertRaises(APIException, account.findSubscribers, name="bob")
class TestCreatingCustomFields(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() cf_url = '/accounts/1/lists/303449/custom_fields' self.cf = self.aweber.load_from_url(cf_url) self.aweber.adapter.requests = [] self.resp = self.cf.create(name='Wedding Song') self.create_req = self.aweber.adapter.requests[0] self.get_req = self.aweber.adapter.requests[1] def test_should_return_new_resource_entry_object(self): assert isinstance(self.resp, AWeberEntry) assert self.resp.name == u'COLOR' assert self.resp.is_subscriber_updateable == True assert self.resp.id == 2 assert self.resp.url == '/accounts/1/lists/303449/custom_fields/2'
class TestAWeberEntry(TestCase): def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() self.list = self.aweber.load_from_url('/accounts/1/lists/303449') def test_should_be_an_entry(self): self.assertEqual(type(self.list), AWeberEntry) self.assertEqual(self.list.type, 'list') def test_should_have_id(self): self.assertEqual(self.list.id, 303449) def test_should_have_other_properties(self): self.assertEqual(self.list.name, 'default303449') def test_should_have_child_collections(self): campaigns = self.list.campaigns self.assertEqual(type(campaigns), AWeberCollection)
class MyApp(object): def __init__(self): # replace XXX with your keys consumer_key = 'AzjDMRiX4wbhtZEdky23tDbv' consumer_secret = 'PibOkYKyhTQrLKIAKpUdfNxo9cOmsf8Zb7BIRkbY' self.access_token = 'AgzINUhc1zx755e91a2nnCnc' self.access_secret = 'qMATjcw05qw0rk8viqpoGTCG2AJlKzuZKcptYrlk' self.application = AWeberAPI(consumer_key, consumer_secret) self.account = self.application.get_account(self.access_token, self.access_secret) def connect_to_AWeber_account(self): app_id = '98a30a69' authorization_url = 'https://auth.aweber.com/1.0/oauth/authorize_app/%s' % app_id print 'Go to this url in your browser: %s' % authorization_url authorization_code = raw_input('Type code here: ') auth = AWeberAPI.parse_authorization_code(authorization_code) consumer_key, consumer_secret, access_key, access_secret = auth print auth return auth def find_list(list): lists = self.account.lists.find(name=list) return lists[0] def find_subscriber(self): subscribers = self.account.findSubscribers(email="*****@*****.**") return subscribers[0] def add_subscriber(self, subscriber, _list): list_url = '/accounts/%s/lists/%s' % (self.account.id, _list.id) _list = self.account.load_from_url(list_url) try: new_subscriber = _list.subscribers.create(**subscriber) print new_subscriber.email except Exception, exc: print exc
def parse_auth_code(widgets): """Parse authorization code. :param widgets: object to read data from it :type widgets: Widgets object """ authorization_code = widgets['authorization_code'].value auth = AWeberAPI.parse_authorization_code( authorization_code ) c_key, c_secret, a_token, a_secret = auth api.portal.set_registry_record( 'niteoweb.aweber.interfaces.IAweberSettings.consumer_key', c_key, ) api.portal.set_registry_record( 'niteoweb.aweber.interfaces.IAweberSettings.consumer_secret', c_secret, ) api.portal.set_registry_record( 'niteoweb.aweber.interfaces.IAweberSettings.access_token', unicode(a_token), ) api.portal.set_registry_record( 'niteoweb.aweber.interfaces.IAweberSettings.access_secret', unicode(a_secret), ) # once parsed there is no need for authorization code any more api.portal.set_registry_record( 'niteoweb.aweber.interfaces.IAweberSettings.authorization_code', u"", )
def notify(): message = loads(request.data) algorithm = sha1() algorithm.update(CLICKBANK) dictionary = loads(''.join([ character for character in AES.new(algorithm.hexdigest( )[:32], AES.MODE_CBC, message['iv'].decode('base64')).decrypt( message['notification'].decode('base64')).strip() if ord(character) >= 32 ])) billing = {} try: billing = dictionary['customer']['billing'] except KeyError: pass email = billing.get('email', '') if not email: abort(500) name = billing.get('fullName', '') customer = g.mysql.query( models.customer).filter(models.customer.user_email == email).first() if not customer: customer = models.customer( **{ 'display_name': name, 'user_activation_key': '', 'user_email': email, 'user_login': email, 'user_nicename': name, 'user_pass': '', 'user_registered': datetime.now(), 'user_status': 1, 'user_url': '', }) aweber = AWeberAPI( AWEBER['consumer_key'], AWEBER['consumer_secret'], ).get_account( AWEBER['access_key'], AWEBER['access_secret'], ) try: aweber.load_from_url('/accounts/%(account_id)s/lists/%(list_id)s' % { 'account_id': AWEBER['account_id'], 'list_id': AWEBER['list_id'], }).subscribers.create(**{ 'email': email, 'name': name, }) except Exception: report_exc_info() pass type = dictionary.get('transactionType', '') if type == 'SALE': customer.user_status = 1 if type == 'RFND': customer.user_status = 0 if type == 'CGBK': customer.user_status = 0 if type == 'FEE': customer.user_status = 1 if type == 'BILL': customer.user_status = 1 if type == 'TEST_SALE': customer.user_status = 1 if type == 'TEST_BILL': customer.user_status = 1 if type == 'TEST_RFND': customer.user_status = 0 if type == 'TEST_FEE': customer.user_status = 1 g.mysql.add(customer) g.mysql.commit() g.mysql.refresh(customer) order = models.order( **{ 'affiliate': dictionary.get('affiliate', ''), 'amounts_account': dictionary.get('totalAccountAmount', 0.00), 'amounts_order': dictionary.get('totalOrderAmount', 0.00), 'amounts_shipping': dictionary.get('totalShippingAmount', 0.00), 'amounts_tax': dictionary.get('totalTaxAmount', 0.00), 'currency': dictionary.get('currency', ''), 'customer_id': customer.ID, 'language': dictionary.get('orderLanguage', ''), 'payment_method': dictionary.get('paymentMethod', ''), 'receipt': dictionary.get('receipt', ''), 'role': dictionary.get('role', ''), 'timestamp': dictionary.get('transactionTime', ''), 'tracking_codes': dictionary.get('trackingCodes', []), 'type': type, 'vendor': dictionary.get('vendor', ''), 'vendor_variables': dictionary.get('vendorVariables', {}), }) g.mysql.add(order) for item in dictionary.get('lineItems', []): g.mysql.add( models.order_product( **{ 'amount': item.get('accountAmount', 0.00), 'item_number': item.get('itemNo', ''), 'order': order, 'recurring': item.get('recurring', ''), 'shippable': item.get('shippable', ''), 'title': item.get('productTitle', ''), 'url': item.get('downloadUrl', ''), })) g.mysql.commit() return ('', 204)
def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() self.account = self.aweber.load_from_url('/accounts/1')
import os import json from aweber_api import AWeberAPI, APIException consumer_key = os.environ['AWEBER_CONSUMER_KEY'] consumer_secret = os.environ['AWEBER_CONSUMER_SECRET'] # create new instance of AWeberAPI application = AWeberAPI(consumer_key, consumer_secret) # get a request token request_token, token_secret = application.get_request_token('oob') # pylint: disable=E1601 print 'Go to this url in your browser: %s' % application.authorize_url # prompt for verifier code code = raw_input('Type code here: ') # exchange request token + verifier code for access token application.user.request_token = request_token application.user.token_secret = token_secret application.user.verifier = code access_key, access_secret = application.get_access_token() members_list_id = os.environ['MEMBERS_LIST_ID'] prospects_list_id = os.environ['PROSPECTS_LIST_ID'] data = json.load(open('members-and-prospects.json')) aweber = AWeberAPI(consumer_key, consumer_secret)
def setUp(self): self.aweber = AWeberAPI(key, secret)
def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() sub_url = '/accounts/1/lists/303449/subscribers/2' self.subscriber = self.aweber.load_from_url(sub_url)
def setUp(self): self.aweber = AWeberAPI(key, secret) self.aweber.adapter = MockAdapter() self.access_token = '1234' self.token_secret = 'abcd'
from flask import Flask, redirect, request from aweber_api import AWeberAPI app = Flask(__name__) url = 'http://*****:*****@app.route('/') def hello(): request_token, request_token_secret = aweber.get_request_token(url + '/callback') print "request token " + request_token print "secret " + request_token_secret aweber.user.token_secret = request_token_secret authorization_url = aweber.authorize_url return redirect(authorization_url) @app.route('/callback') def callback(): request_token = request.args.get('oauth_token') verifier = request.args.get('oauth_verifier') aweber.user.verifier = verifier aweber.user.request_token = request_token print "verifier " + verifier
from aweber_api import AWeberAPI # replace XXX with your keys consumer_key = 'Ak7W3K2vE3pODdOyag0t5X79' consumer_secret = 'ekxdnHs8aPgHIlI6RBLk3BynpylWEHCzSr4042vP' # create new instance of AWeberAPI application = AWeberAPI(consumer_key, consumer_secret) # get a request token request_token, token_secret = application.get_request_token('oob') # prompt user to go to the auth url print 'Go to this url in your browser: %s' % application.authorize_url # prompt for verifier code code = raw_input('Type code here: ') # exchange request token + verifier code for access token application.user.request_token = request_token application.user.token_secret = token_secret application.user.verifier = code access_token, access_secret = application.get_access_token() # show the results print access_token, access_secret
def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() self.lists = self.aweber.load_from_url('/accounts/1/lists') self.aweber.adapter.requests = []
def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() cf_url = '/accounts/1/lists/505454/custom_fields' self.cf = self.aweber.load_from_url(cf_url) self.aweber.adapter.requests = []
def setUp(self): self.aweber = AWeberAPI('1', '2') self.aweber.adapter = MockAdapter() self.list_ = self.aweber.load_from_url('/accounts/1/lists/303449')