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'
Ejemplo n.º 3
0
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)
Ejemplo n.º 6
0
    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()
Ejemplo n.º 8
0
    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]
Ejemplo n.º 9
0
    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)
 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'
Ejemplo n.º 13
0
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)
Ejemplo n.º 22
0
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 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()
Ejemplo n.º 25
0
    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
Ejemplo n.º 26
0
    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
Ejemplo n.º 27
0
    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)
Ejemplo n.º 30
0
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')
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)
Ejemplo n.º 32
0
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")
Ejemplo n.º 37
0
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")
Ejemplo n.º 40
0
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)
Ejemplo n.º 42
0
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
Ejemplo n.º 43
0
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"",
    )
Ejemplo n.º 44
0
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'
Ejemplo n.º 50
0
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
Ejemplo n.º 51
0
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
Ejemplo n.º 52
0
 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 = []
Ejemplo n.º 53
0
 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')