test_authorization.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from unittest.mock import MagicMock
  2. from oauthlib.oauth1 import RequestValidator
  3. from oauthlib.oauth1.rfc5849 import errors
  4. from oauthlib.oauth1.rfc5849.endpoints import AuthorizationEndpoint
  5. from tests.unittest import TestCase
  6. class AuthorizationEndpointTest(TestCase):
  7. def setUp(self):
  8. self.validator = MagicMock(wraps=RequestValidator())
  9. self.validator.verify_request_token.return_value = True
  10. self.validator.verify_realms.return_value = True
  11. self.validator.get_realms.return_value = ['test']
  12. self.validator.save_verifier = MagicMock()
  13. self.endpoint = AuthorizationEndpoint(self.validator)
  14. self.uri = 'https://i.b/authorize?oauth_token=foo'
  15. def test_get_realms_and_credentials(self):
  16. realms, credentials = self.endpoint.get_realms_and_credentials(self.uri)
  17. self.assertEqual(realms, ['test'])
  18. def test_verify_token(self):
  19. self.validator.verify_request_token.return_value = False
  20. self.assertRaises(errors.InvalidClientError,
  21. self.endpoint.get_realms_and_credentials, self.uri)
  22. self.assertRaises(errors.InvalidClientError,
  23. self.endpoint.create_authorization_response, self.uri)
  24. def test_verify_realms(self):
  25. self.validator.verify_realms.return_value = False
  26. self.assertRaises(errors.InvalidRequestError,
  27. self.endpoint.create_authorization_response,
  28. self.uri,
  29. realms=['bar'])
  30. def test_create_authorization_response(self):
  31. self.validator.get_redirect_uri.return_value = 'https://c.b/cb'
  32. h, b, s = self.endpoint.create_authorization_response(self.uri)
  33. self.assertEqual(s, 302)
  34. self.assertIn('Location', h)
  35. location = h['Location']
  36. self.assertTrue(location.startswith('https://c.b/cb'))
  37. self.assertIn('oauth_verifier', location)
  38. def test_create_authorization_response_oob(self):
  39. self.validator.get_redirect_uri.return_value = 'oob'
  40. h, b, s = self.endpoint.create_authorization_response(self.uri)
  41. self.assertEqual(s, 200)
  42. self.assertNotIn('Location', h)
  43. self.assertIn('oauth_verifier', b)
  44. self.assertIn('oauth_token', b)