summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/config/test_oidc2.py41
-rw-r--r--tests/config/test_validators.py52
2 files changed, 24 insertions, 69 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) diff --git a/tests/config/test_validators.py b/tests/config/test_validators.py deleted file mode 100644
index 7b57a13d5e..0000000000 --- a/tests/config/test_validators.py +++ /dev/null
@@ -1,52 +0,0 @@ -from unittest import TestCase - -from pydantic import BaseModel, ValidationError, validator, StrictStr - -from synapse.config.validators import string_length_between, string_contains_characters - - -class TestValidators(TestCase): - def test_string_length_between(self) -> None: - class TestModel(BaseModel): - x: StrictStr - _x_length = validator("x")(string_length_between(5, 10)) - - with self.assertRaises(ValidationError): - TestModel(x="") - with self.assertRaises(ValidationError): - TestModel(x="a" * 4) - - # Should not raise: - TestModel(x="a" * 5) - TestModel(x="a" * 10) - - with self.assertRaises(ValidationError): - TestModel(x="a" * 11) - with self.assertRaises(ValidationError): - TestModel(x="a" * 1000) - - def test_string_contains_characters(self) -> None: - class TestModel(BaseModel): - x: StrictStr - _x_characters = validator("x")(string_contains_characters("A-Z0-9")) - - # Should not raise - TestModel(x="") - TestModel(x="A") - TestModel(x="B") - TestModel(x="Z") - TestModel(x="123456789") - - with self.assertRaises(ValidationError): - TestModel(x="---") - with self.assertRaises(ValidationError): - TestModel(x="$") - with self.assertRaises(ValidationError): - TestModel(x="A$") - with self.assertRaises(ValidationError): - TestModel(x="a") - with self.assertRaises(ValidationError): - TestModel(x="\u0000") - with self.assertRaises(ValidationError): - TestModel(x="☃") -