Hide keyboard shortcuts

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 

4 

5# Packages 

6import responses 

7 

8# Local modules 

9import webapp.api.marketo as marketo_api 

10 

11 

12responses.mock.assert_all_requests_are_fired = True 

13 

14 

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 ) 

26 

27 marketo_auth_payload = {"access_token": "test"} 

28 

29 responses.add( 

30 responses.GET, 

31 marketo_auth_url, 

32 json=marketo_auth_payload, 

33 status=200, 

34 ) 

35 

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 ) 

44 

45 marketo_leads_payload = {"result": [{"id": "test"}]} 

46 

47 responses.add( 

48 responses.GET, 

49 marketo_leads_url, 

50 json=marketo_leads_payload, 

51 status=200, 

52 ) 

53 

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") 

58 

59 self.assertEqual(user, {"id": "test"}) 

60 

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 ) 

71 

72 marketo_leads_payload = {"result": [{"id": "test"}]} 

73 

74 responses.add( 

75 responses.GET, 

76 marketo_leads_url, 

77 json=marketo_leads_payload, 

78 status=200, 

79 ) 

80 

81 marketo = marketo_api.Marketo() 

82 marketo.token = "test" 

83 user = marketo.get_user("testing@testing.com") 

84 

85 self.assertEqual(user, {"id": "test"}) 

86 

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 ) 

96 

97 marketo_lead_payload = {"result": [{"snapcraftnewsletter": True}]} 

98 

99 responses.add( 

100 responses.GET, 

101 marketo_lead_url, 

102 json=marketo_lead_payload, 

103 status=200, 

104 ) 

105 

106 marketo = marketo_api.Marketo() 

107 marketo.token = "test" 

108 subscription = marketo.get_newsletter_subscription("test") 

109 

110 self.assertEqual(subscription, {"snapcraftnewsletter": True}) 

111 

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 ) 

121 

122 marketo_lead_payload = {"badkey": "bad"} 

123 

124 responses.add( 

125 responses.GET, 

126 marketo_lead_url, 

127 json=marketo_lead_payload, 

128 status=200, 

129 ) 

130 

131 marketo = marketo_api.Marketo() 

132 marketo.token = "test" 

133 subscription = marketo.get_newsletter_subscription("test") 

134 

135 self.assertEqual(subscription, {}) 

136 

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 ) 

146 

147 responses.add( 

148 responses.POST, 

149 marketo_set_subscription_url, 

150 json={}, 

151 status=200, 

152 ) 

153 

154 marketo = marketo_api.Marketo() 

155 marketo.token = "test" 

156 response = marketo.set_newsletter_subscription("test", True) 

157 

158 self.assertEqual(response, {}) 

159 

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 ) 

170 

171 marketo_leads_payload = {"result": [{"id": "test"}]} 

172 

173 responses.add(responses.GET, marketo_leads_url, status=602) 

174 

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 ) 

183 

184 marketo_auth_payload = {"access_token": "refreshed_token"} 

185 

186 responses.add( 

187 responses.GET, 

188 marketo_auth_url, 

189 json=marketo_auth_payload, 

190 status=200, 

191 ) 

192 

193 responses.add( 

194 responses.GET, 

195 marketo_leads_url, 

196 json=marketo_leads_payload, 

197 status=200, 

198 ) 

199 

200 marketo = marketo_api.Marketo() 

201 marketo.token = "test" 

202 marketo.get_user("testing@testing.com") 

203 

204 self.assertEqual(marketo.token, "refreshed_token")