|
17 | 17 | from requests_oauthlib.compliance_fixes import mailchimp_compliance_fix |
18 | 18 | from requests_oauthlib.compliance_fixes import weibo_compliance_fix |
19 | 19 | from requests_oauthlib.compliance_fixes import slack_compliance_fix |
| 20 | +from requests_oauthlib.compliance_fixes import instagram_compliance_fix |
20 | 21 | from requests_oauthlib.compliance_fixes import plentymarkets_compliance_fix |
21 | 22 |
|
22 | 23 |
|
@@ -275,6 +276,58 @@ def test_protected_request_override_token_url(self): |
275 | 276 | self.assertIsNone(response.request.body) |
276 | 277 |
|
277 | 278 |
|
| 279 | +class InstagramComplianceFixTest(TestCase): |
| 280 | + |
| 281 | + def setUp(self): |
| 282 | + mocker = requests_mock.Mocker() |
| 283 | + mocker.request( |
| 284 | + method="GET", |
| 285 | + url="https://api.instagram.com/v1/users/self", |
| 286 | + json={ |
| 287 | + "data": { |
| 288 | + "id": "1574083", |
| 289 | + "username": "snoopdogg", |
| 290 | + "full_name": "Snoop Dogg", |
| 291 | + "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg", |
| 292 | + "bio": "This is my bio", |
| 293 | + "website": "http://snoopdogg.com", |
| 294 | + "is_business": False, |
| 295 | + "counts": { |
| 296 | + "media": 1320, |
| 297 | + "follows": 420, |
| 298 | + "followed_by": 3410 |
| 299 | + } |
| 300 | + } |
| 301 | + } |
| 302 | + ) |
| 303 | + mocker.start() |
| 304 | + self.addCleanup(mocker.stop) |
| 305 | + |
| 306 | + instagram = OAuth2Session('someclientid', redirect_uri='https://i.b') |
| 307 | + self.session = instagram_compliance_fix(instagram) |
| 308 | + |
| 309 | + def test_protected_request(self): |
| 310 | + self.session.token = {"access_token": 'dummy-access-token'} |
| 311 | + response = self.session.get( |
| 312 | + "https://api.instagram.com/v1/users/self" |
| 313 | + ) |
| 314 | + url = response.request.url |
| 315 | + query = parse_qs(urlparse(url).query) |
| 316 | + self.assertIn("access_token", query) |
| 317 | + self.assertEqual(query["access_token"], ["dummy-access-token"]) |
| 318 | + |
| 319 | + def test_protected_request_dont_override(self): |
| 320 | + """check that if the access_token param |
| 321 | + already exist we don't override it""" |
| 322 | + self.session.token = {"access_token": 'dummy-access-token'} |
| 323 | + response = self.session.get( |
| 324 | + "https://api.instagram.com/v1/users/self?access_token=correct-access-token" |
| 325 | + ) |
| 326 | + url = response.request.url |
| 327 | + query = parse_qs(urlparse(url).query) |
| 328 | + self.assertIn("access_token", query) |
| 329 | + self.assertEqual(query["access_token"], ["correct-access-token"]) |
| 330 | + |
278 | 331 | class PlentymarketsComplianceFixTest(TestCase): |
279 | 332 |
|
280 | 333 | def setUp(self): |
|
0 commit comments