test_device.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import os
  2. from unittest.mock import patch
  3. from oauthlib import signals
  4. from oauthlib.oauth2 import DeviceClient
  5. from tests.unittest import TestCase
  6. class DeviceClientTest(TestCase):
  7. client_id = "someclientid"
  8. kwargs = {
  9. "some": "providers",
  10. "require": "extra arguments"
  11. }
  12. client_secret = "asecret"
  13. device_code = "somedevicecode"
  14. scope = ["profile", "email"]
  15. body = "not=empty"
  16. body_up = "not=empty&grant_type=urn:ietf:params:oauth:grant-type:device_code"
  17. body_code = body_up + "&device_code=somedevicecode"
  18. body_kwargs = body_code + "&some=providers&require=extra+arguments"
  19. uri = "https://example.com/path?query=world"
  20. uri_id = uri + "&client_id=" + client_id
  21. uri_grant = uri_id + "&grant_type=urn:ietf:params:oauth:grant-type:device_code"
  22. uri_secret = uri_grant + "&client_secret=asecret"
  23. uri_scope = uri_secret + "&scope=profile+email"
  24. def test_request_body(self):
  25. client = DeviceClient(self.client_id)
  26. # Basic, no extra arguments
  27. body = client.prepare_request_body(self.device_code, body=self.body)
  28. self.assertFormBodyEqual(body, self.body_code)
  29. rclient = DeviceClient(self.client_id)
  30. body = rclient.prepare_request_body(self.device_code, body=self.body)
  31. self.assertFormBodyEqual(body, self.body_code)
  32. # With extra parameters
  33. body = client.prepare_request_body(
  34. self.device_code, body=self.body, **self.kwargs)
  35. self.assertFormBodyEqual(body, self.body_kwargs)
  36. def test_request_uri(self):
  37. client = DeviceClient(self.client_id)
  38. uri = client.prepare_request_uri(self.uri)
  39. self.assertURLEqual(uri, self.uri_grant)
  40. client = DeviceClient(self.client_id, client_secret=self.client_secret)
  41. uri = client.prepare_request_uri(self.uri)
  42. self.assertURLEqual(uri, self.uri_secret)
  43. uri = client.prepare_request_uri(self.uri, scope=self.scope)
  44. self.assertURLEqual(uri, self.uri_scope)