aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/oauthlib/tests/oauth1/rfc5849/endpoints/test_resource.py
diff options
context:
space:
mode:
authoralexv-smirnov <alex@ydb.tech>2023-12-01 12:02:50 +0300
committeralexv-smirnov <alex@ydb.tech>2023-12-01 13:28:10 +0300
commit0e578a4c44d4abd539d9838347b9ebafaca41dfb (patch)
treea0c1969c37f818c830ebeff9c077eacf30be6ef8 /contrib/python/oauthlib/tests/oauth1/rfc5849/endpoints/test_resource.py
parent84f2d3d4cc985e63217cff149bd2e6d67ae6fe22 (diff)
downloadydb-0e578a4c44d4abd539d9838347b9ebafaca41dfb.tar.gz
Change "ya.make"
Diffstat (limited to 'contrib/python/oauthlib/tests/oauth1/rfc5849/endpoints/test_resource.py')
-rw-r--r--contrib/python/oauthlib/tests/oauth1/rfc5849/endpoints/test_resource.py102
1 files changed, 102 insertions, 0 deletions
diff --git a/contrib/python/oauthlib/tests/oauth1/rfc5849/endpoints/test_resource.py b/contrib/python/oauthlib/tests/oauth1/rfc5849/endpoints/test_resource.py
new file mode 100644
index 0000000000..416216f737
--- /dev/null
+++ b/contrib/python/oauthlib/tests/oauth1/rfc5849/endpoints/test_resource.py
@@ -0,0 +1,102 @@
+from unittest.mock import ANY, MagicMock
+
+from oauthlib.oauth1 import RequestValidator
+from oauthlib.oauth1.rfc5849 import Client
+from oauthlib.oauth1.rfc5849.endpoints import ResourceEndpoint
+
+from tests.unittest import TestCase
+
+
+class ResourceEndpointTest(TestCase):
+
+ def setUp(self):
+ self.validator = MagicMock(wraps=RequestValidator())
+ self.validator.check_client_key.return_value = True
+ self.validator.check_access_token.return_value = True
+ self.validator.allowed_signature_methods = ['HMAC-SHA1']
+ self.validator.get_client_secret.return_value = 'bar'
+ self.validator.get_access_token_secret.return_value = 'secret'
+ self.validator.timestamp_lifetime = 600
+ self.validator.validate_client_key.return_value = True
+ self.validator.validate_access_token.return_value = True
+ self.validator.validate_timestamp_and_nonce.return_value = True
+ self.validator.validate_realms.return_value = True
+ self.validator.dummy_client = 'dummy'
+ self.validator.dummy_secret = 'dummy'
+ self.validator.dummy_access_token = 'dummy'
+ self.endpoint = ResourceEndpoint(self.validator)
+ self.client = Client('foo',
+ client_secret='bar',
+ resource_owner_key='token',
+ resource_owner_secret='secret')
+ self.uri, self.headers, self.body = self.client.sign(
+ 'https://i.b/protected_resource')
+
+ def test_missing_parameters(self):
+ self.validator.check_access_token.return_value = False
+ v, r = self.endpoint.validate_protected_resource_request(
+ self.uri)
+ self.assertFalse(v)
+
+ def test_check_access_token(self):
+ self.validator.check_access_token.return_value = False
+ v, r = self.endpoint.validate_protected_resource_request(
+ self.uri, headers=self.headers)
+ self.assertFalse(v)
+
+ def test_validate_client_key(self):
+ self.validator.validate_client_key.return_value = False
+ v, r = self.endpoint.validate_protected_resource_request(
+ self.uri, headers=self.headers)
+ self.assertFalse(v)
+ # the validator log should have `False` values
+ self.assertFalse(r.validator_log['client'])
+ self.assertTrue(r.validator_log['realm'])
+ self.assertTrue(r.validator_log['resource_owner'])
+ self.assertTrue(r.validator_log['signature'])
+
+ def test_validate_access_token(self):
+ self.validator.validate_access_token.return_value = False
+ v, r = self.endpoint.validate_protected_resource_request(
+ self.uri, headers=self.headers)
+ self.assertFalse(v)
+ # the validator log should have `False` values
+ self.assertTrue(r.validator_log['client'])
+ self.assertTrue(r.validator_log['realm'])
+ self.assertFalse(r.validator_log['resource_owner'])
+ self.assertTrue(r.validator_log['signature'])
+
+ def test_validate_realms(self):
+ self.validator.validate_realms.return_value = False
+ v, r = self.endpoint.validate_protected_resource_request(
+ self.uri, headers=self.headers)
+ self.assertFalse(v)
+ # the validator log should have `False` values
+ self.assertTrue(r.validator_log['client'])
+ self.assertFalse(r.validator_log['realm'])
+ self.assertTrue(r.validator_log['resource_owner'])
+ self.assertTrue(r.validator_log['signature'])
+
+ def test_validate_signature(self):
+ client = Client('foo',
+ resource_owner_key='token',
+ resource_owner_secret='secret')
+ _, headers, _ = client.sign(self.uri + '/extra')
+ v, r = self.endpoint.validate_protected_resource_request(
+ self.uri, headers=headers)
+ self.assertFalse(v)
+ # the validator log should have `False` values
+ self.assertTrue(r.validator_log['client'])
+ self.assertTrue(r.validator_log['realm'])
+ self.assertTrue(r.validator_log['resource_owner'])
+ self.assertFalse(r.validator_log['signature'])
+
+ def test_valid_request(self):
+ v, r = self.endpoint.validate_protected_resource_request(
+ self.uri, headers=self.headers)
+ self.assertTrue(v)
+ self.validator.validate_timestamp_and_nonce.assert_called_once_with(
+ self.client.client_key, ANY, ANY, ANY,
+ access_token=self.client.resource_owner_key)
+ # everything in the validator_log should be `True`
+ self.assertTrue(all(r.validator_log.items()))