Coverage for tests/api/test_marketo_api.py: 100%
67 statements
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-15 22:43 +0000
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-15 22:43 +0000
1# Standard library
2import os
3import unittest
5# Packages
6import responses
8# Local modules
9import webapp.api.marketo as marketo_api
11responses.mock.assert_all_requests_are_fired = True
14class Marketo(unittest.TestCase):
15 @responses.activate
16 def test_auth(self):
17 marketo_auth_url = "".join(
18 [
19 "https://066-eov-335.mktorest.com/",
20 "identity/oauth/token?",
21 "grant_type=client_credentials&client_id=fake_id",
22 "&client_secret=fake_secret",
23 ]
24 )
26 marketo_auth_payload = {"access_token": "test"}
28 responses.add(
29 responses.GET,
30 marketo_auth_url,
31 json=marketo_auth_payload,
32 status=200,
33 )
35 marketo_leads_url = "".join(
36 [
37 "https://066-eov-335.mktorest.com/",
38 "rest/v1/leads.json?",
39 "access_token=test&filterType=email",
40 "&filterValues=testing@testing.com&fields=id",
41 ]
42 )
44 marketo_leads_payload = {"result": [{"id": "test"}]}
46 responses.add(
47 responses.GET,
48 marketo_leads_url,
49 json=marketo_leads_payload,
50 status=200,
51 )
53 os.environ["MARKETO_CLIENT_ID"] = "fake_id"
54 os.environ["MARKETO_CLIENT_SECRET"] = "fake_secret"
55 marketo = marketo_api.Marketo()
56 user = marketo.get_user("testing@testing.com")
58 self.assertEqual(user, {"id": "test"})
60 @responses.activate
61 def test_get_user(self):
62 marketo_leads_url = "".join(
63 [
64 "https://066-eov-335.mktorest.com/",
65 "rest/v1/leads.json?",
66 "access_token=test&filterType=email",
67 "&filterValues=testing@testing.com&fields=id",
68 ]
69 )
71 marketo_leads_payload = {"result": [{"id": "test"}]}
73 responses.add(
74 responses.GET,
75 marketo_leads_url,
76 json=marketo_leads_payload,
77 status=200,
78 )
80 marketo = marketo_api.Marketo()
81 marketo.token = "test"
82 user = marketo.get_user("testing@testing.com")
84 self.assertEqual(user, {"id": "test"})
86 @responses.activate
87 def test_get_newsletter_subscription(self):
88 marketo_lead_url = "".join(
89 [
90 "https://066-eov-335.mktorest.com/",
91 "rest/v1/lead/test.json?",
92 "access_token=test&fields=id,email,snapcraftnewsletter",
93 ]
94 )
96 marketo_lead_payload = {"result": [{"snapcraftnewsletter": True}]}
98 responses.add(
99 responses.GET,
100 marketo_lead_url,
101 json=marketo_lead_payload,
102 status=200,
103 )
105 marketo = marketo_api.Marketo()
106 marketo.token = "test"
107 subscription = marketo.get_newsletter_subscription("test")
109 self.assertEqual(subscription, {"snapcraftnewsletter": True})
111 @responses.activate
112 def test_get_newsletter_subscription_bad_response(self):
113 marketo_lead_url = "".join(
114 [
115 "https://066-eov-335.mktorest.com/",
116 "rest/v1/lead/test.json?",
117 "access_token=test&fields=id,email,snapcraftnewsletter",
118 ]
119 )
121 marketo_lead_payload = {"badkey": "bad"}
123 responses.add(
124 responses.GET,
125 marketo_lead_url,
126 json=marketo_lead_payload,
127 status=200,
128 )
130 marketo = marketo_api.Marketo()
131 marketo.token = "test"
132 subscription = marketo.get_newsletter_subscription("test")
134 self.assertEqual(subscription, {})
136 @responses.activate
137 def test_set_newsletter_subscription(self):
138 marketo_set_subscription_url = "".join(
139 [
140 "https://066-eov-335.mktorest.com/",
141 "rest/v1/leads.json?",
142 "access_token=test",
143 ]
144 )
146 responses.add(
147 responses.POST,
148 marketo_set_subscription_url,
149 json={},
150 status=200,
151 )
153 marketo = marketo_api.Marketo()
154 marketo.token = "test"
155 response = marketo.set_newsletter_subscription("test", True)
157 self.assertEqual(response, {})
159 @responses.activate
160 def test_token_refresh(self):
161 marketo_leads_url = "".join(
162 [
163 "https://066-eov-335.mktorest.com/",
164 "rest/v1/leads.json?",
165 "access_token=test&filterType=email",
166 "&filterValues=testing@testing.com&fields=id",
167 ]
168 )
170 marketo_leads_payload = {"result": [{"id": "test"}]}
172 responses.add(responses.GET, marketo_leads_url, status=602)
174 marketo_auth_url = "".join(
175 [
176 "https://066-eov-335.mktorest.com/",
177 "identity/oauth/token?",
178 "grant_type=client_credentials&client_id=fake_id",
179 "&client_secret=fake_secret",
180 ]
181 )
183 marketo_auth_payload = {"access_token": "refreshed_token"}
185 responses.add(
186 responses.GET,
187 marketo_auth_url,
188 json=marketo_auth_payload,
189 status=200,
190 )
192 responses.add(
193 responses.GET,
194 marketo_leads_url,
195 json=marketo_leads_payload,
196 status=200,
197 )
199 marketo = marketo_api.Marketo()
200 marketo.token = "test"
201 marketo.get_user("testing@testing.com")
203 self.assertEqual(marketo.token, "refreshed_token")