summary refs log tree commit diff
path: root/tests/config/test_oidc2.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/config/test_oidc2.py')
-rw-r--r--tests/config/test_oidc2.py41
1 files changed, 24 insertions, 17 deletions
diff --git a/tests/config/test_oidc2.py b/tests/config/test_oidc2.py

index 021eba9511..102b35f9cc 100644 --- a/tests/config/test_oidc2.py +++ b/tests/config/test_oidc2.py
@@ -1,14 +1,14 @@ from copy import deepcopy -from typing import Any, Mapping, Dict +from typing import Any, Dict import yaml from pydantic import ValidationError from synapse.config.oidc2 import OIDCProviderModel -from tests.unittest import TestCase +from tests.unittest import TestCase -SAMPLE_CONFIG: Mapping[str, Any] = yaml.safe_load( +SAMPLE_CONFIG = yaml.safe_load( """ idp_id: apple idp_name: Apple @@ -44,20 +44,21 @@ class PydanticOIDCTestCase(TestCase): def test_idp_id(self) -> None: """Demonstrate that Pydantic validates idp_id correctly.""" - # OIDCProviderModel.parse_obj(self.config) - # - # # Enforce that idp_id is required. - # with self.assertRaises(ValidationError): - # del self.config["idp_id"] - # OIDCProviderModel.parse_obj(self.config) - # - # # Enforce that idp_id is a string. - # with self.assertRaises(ValidationError): - # self.config["idp_id"] = 123 - # OIDCProviderModel.parse_obj(self.config) - # with self.assertRaises(ValidationError): - # self.config["idp_id"] = None - # OIDCProviderModel.parse_obj(self.config) + OIDCProviderModel.parse_obj(self.config) + + # Enforce that idp_id is required. + with self.assertRaises(ValidationError): + del self.config["idp_id"] + OIDCProviderModel.parse_obj(self.config) + + # Enforce that idp_id is a string. + with self.assertRaises(ValidationError) as e: + self.config["idp_id"] = 123 + OIDCProviderModel.parse_obj(self.config) + print(e.exception) + with self.assertRaises(ValidationError): + self.config["idp_id"] = None + OIDCProviderModel.parse_obj(self.config) # Enforce a length between 1 and 250. with self.assertRaises(ValidationError): @@ -71,3 +72,9 @@ class PydanticOIDCTestCase(TestCase): with self.assertRaises(ValidationError): self.config["idp_id"] = "$" OIDCProviderModel.parse_obj(self.config) + + # What happens with a really long string of prohibited characters? + with self.assertRaises(ValidationError) as e: + self.config["idp_id"] = "$" * 500 + OIDCProviderModel.parse_obj(self.config) + print(e.exception)