Coverage for tests/api/test_marketo_api.py : 100%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# Standard library
2import os
3import unittest
5# Packages
6import responses
8# Local modules
9import webapp.api.marketo as marketo_api
12responses.mock.assert_all_requests_are_fired = True
15class Marketo(unittest.TestCase):
16 @responses.activate
17 def test_auth(self):
18 marketo_auth_url = "".join(
19 [
20 "https://066-eov-335.mktorest.com/",
21 "identity/oauth/token?",
22 "grant_type=client_credentials&client_id=fake_id",
23 "&client_secret=fake_secret",
24 ]
25 )
27 marketo_auth_payload = {"access_token": "test"}
29 responses.add(
30 responses.GET,
31 marketo_auth_url,
32 json=marketo_auth_payload,
33 status=200,
34 )
36 marketo_leads_url = "".join(
37 [
38 "https://066-eov-335.mktorest.com/",
39 "rest/v1/leads.json?",
40 "access_token=test&filterType=email",
41 "&filterValues=testing@testing.com&fields=id",
42 ]
43 )
45 marketo_leads_payload = {"result": [{"id": "test"}]}
47 responses.add(
48 responses.GET,
49 marketo_leads_url,
50 json=marketo_leads_payload,
51 status=200,
52 )
54 os.environ["MARKETO_CLIENT_ID"] = "fake_id"
55 os.environ["MARKETO_CLIENT_SECRET"] = "fake_secret"
56 marketo = marketo_api.Marketo()
57 user = marketo.get_user("testing@testing.com")
59 self.assertEqual(user, {"id": "test"})
61 @responses.activate
62 def test_get_user(self):
63 marketo_leads_url = "".join(
64 [
65 "https://066-eov-335.mktorest.com/",
66 "rest/v1/leads.json?",
67 "access_token=test&filterType=email",
68 "&filterValues=testing@testing.com&fields=id",
69 ]
70 )
72 marketo_leads_payload = {"result": [{"id": "test"}]}
74 responses.add(
75 responses.GET,
76 marketo_leads_url,
77 json=marketo_leads_payload,
78 status=200,
79 )
81 marketo = marketo_api.Marketo()
82 marketo.token = "test"
83 user = marketo.get_user("testing@testing.com")
85 self.assertEqual(user, {"id": "test"})
87 @responses.activate
88 def test_get_newsletter_subscription(self):
89 marketo_lead_url = "".join(
90 [
91 "https://066-eov-335.mktorest.com/",
92 "rest/v1/lead/test.json?",
93 "access_token=test&fields=id,email,snapcraftnewsletter",
94 ]
95 )
97 marketo_lead_payload = {"result": [{"snapcraftnewsletter": True}]}
99 responses.add(
100 responses.GET,
101 marketo_lead_url,
102 json=marketo_lead_payload,
103 status=200,
104 )
106 marketo = marketo_api.Marketo()
107 marketo.token = "test"
108 subscription = marketo.get_newsletter_subscription("test")
110 self.assertEqual(subscription, {"snapcraftnewsletter": True})
112 @responses.activate
113 def test_get_newsletter_subscription_bad_response(self):
114 marketo_lead_url = "".join(
115 [
116 "https://066-eov-335.mktorest.com/",
117 "rest/v1/lead/test.json?",
118 "access_token=test&fields=id,email,snapcraftnewsletter",
119 ]
120 )
122 marketo_lead_payload = {"badkey": "bad"}
124 responses.add(
125 responses.GET,
126 marketo_lead_url,
127 json=marketo_lead_payload,
128 status=200,
129 )
131 marketo = marketo_api.Marketo()
132 marketo.token = "test"
133 subscription = marketo.get_newsletter_subscription("test")
135 self.assertEqual(subscription, {})
137 @responses.activate
138 def test_set_newsletter_subscription(self):
139 marketo_set_subscription_url = "".join(
140 [
141 "https://066-eov-335.mktorest.com/",
142 "rest/v1/leads.json?",
143 "access_token=test",
144 ]
145 )
147 responses.add(
148 responses.POST,
149 marketo_set_subscription_url,
150 json={},
151 status=200,
152 )
154 marketo = marketo_api.Marketo()
155 marketo.token = "test"
156 response = marketo.set_newsletter_subscription("test", True)
158 self.assertEqual(response, {})
160 @responses.activate
161 def test_token_refresh(self):
162 marketo_leads_url = "".join(
163 [
164 "https://066-eov-335.mktorest.com/",
165 "rest/v1/leads.json?",
166 "access_token=test&filterType=email",
167 "&filterValues=testing@testing.com&fields=id",
168 ]
169 )
171 marketo_leads_payload = {"result": [{"id": "test"}]}
173 responses.add(responses.GET, marketo_leads_url, status=602)
175 marketo_auth_url = "".join(
176 [
177 "https://066-eov-335.mktorest.com/",
178 "identity/oauth/token?",
179 "grant_type=client_credentials&client_id=fake_id",
180 "&client_secret=fake_secret",
181 ]
182 )
184 marketo_auth_payload = {"access_token": "refreshed_token"}
186 responses.add(
187 responses.GET,
188 marketo_auth_url,
189 json=marketo_auth_payload,
190 status=200,
191 )
193 responses.add(
194 responses.GET,
195 marketo_leads_url,
196 json=marketo_leads_payload,
197 status=200,
198 )
200 marketo = marketo_api.Marketo()
201 marketo.token = "test"
202 marketo.get_user("testing@testing.com")
204 self.assertEqual(marketo.token, "refreshed_token")