This repository was archived by the owner on Aug 29, 2019. It is now read-only.
forked from RamosAlvarez/AWeber-API-Python-Library
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathtest_aweber_api.py
More file actions
105 lines (82 loc) · 3.85 KB
/
test_aweber_api.py
File metadata and controls
105 lines (82 loc) · 3.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
from unittest import TestCase
from tests.mock_adapter import MockAdapter
from mock import Mock
from aweber_api import (AWeberAPI, AWeberUser, ACCESS_TOKEN_URL, AUTHORIZE_URL,
REQUEST_TOKEN_URL, AWeberEntry)
key = 'XXXXX'
secret = '3434534534534'
class AWeberAPITest(TestCase):
def setUp(self):
self.aweber = AWeberAPI(key, secret)
def test_should_exist(self):
self.assertTrue(self.aweber)
class WhenGettingARequestToken(AWeberAPITest):
def setUp(self):
AWeberAPITest.setUp(self)
self.response = "oauth_token=1234&oauth_token_secret=abcd"
self.aweber.adapter = Mock()
self.aweber.adapter.user = AWeberUser()
self.aweber.adapter.request = Mock(return_value=self.response)
def test_should_get_request_token(self):
token, secret = self.aweber.get_request_token('http://localhost/demo')
self.assertEqual(token, '1234')
self.assertEqual(secret, 'abcd')
def test_should_pass_args_to_request(self):
self.called = False
def _request(method, url, params):
self.assertEqual(url, REQUEST_TOKEN_URL)
self.assertEqual(method, 'POST')
self.assertEqual(params['oauth_callback'], 'http://localhost/demo')
self.called = True
return self.response
self.aweber.adapter.request = _request
token, secret = self.aweber.get_request_token('http://localhost/demo')
self.assertTrue(self.called, 'Called _request')
def test_should_set_up_user(self):
token, secret = self.aweber.get_request_token('http://localhost/demo')
self.assertEqual(self.aweber.user.request_token, token)
self.assertEqual(self.aweber.user.token_secret, secret)
def test_should_have_authorize_url(self):
token, secret = self.aweber.get_request_token('http://localhost/demo')
self.assertEqual(self.aweber.authorize_url,
"{0}?oauth_token={1}".format(AUTHORIZE_URL, token))
class WhenGettingAnAccessToken(AWeberAPITest):
def setUp(self):
AWeberAPITest.setUp(self)
self.response = "oauth_token=cheeseburger&oauth_token_secret=hotdog"
self.aweber.adapter = Mock()
self.aweber.adapter.user = AWeberUser()
self.aweber.adapter.request = Mock(return_value=self.response)
self.aweber.user.request_token = '1234'
self.aweber.user.token_secret = 'abcd'
self.aweber.user.verifier = '234a35a1'
def test_should_get_access_token(self):
access_token, token_secret = self.aweber.get_access_token()
self.assertEqual(access_token, 'cheeseburger')
self.assertEqual(token_secret, 'hotdog')
def test_should_pass_args_to_request(self):
self.called = False
def _request(method, url, params={}):
self.assertEqual(url, ACCESS_TOKEN_URL)
self.assertEqual(method, 'POST')
self.assertEqual(params['oauth_verifier'], '234a35a1')
self.called = True
return self.response
self.aweber.adapter.request = _request
token, secret = self.aweber.get_access_token()
self.assertTrue(self.called, 'Called _request')
def test_should_set_up_user(self):
token, secret = self.aweber.get_access_token()
self.assertEqual(self.aweber.user.access_token, token)
self.assertEqual(self.aweber.user.token_secret, secret)
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')