You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If anyone wants to see the kind of error messages Pydantic produces, try running this test case on my other pydantic experiment branch.
I think the name of the model isn't user-relevant. The "error context" (stuff in brackets) also loks like noise to an end-user. But we should be able to inspect the ValidationError and format it as we please.
/home/dmr/.cache/pypoetry/virtualenvs/matrix-synapse-7yaa6cKe-py3.10/bin/python /home/dmr/.local/share/JetBrains/Toolbox/apps/PyCharm-C/ch-0/221.5787.24/plugins/python-ce/helpers/pycharm/_jb_unittest_runner.py --path /home/dmr/workspace/synapse-2/tests/config/test_oidc2.py
Testing started at 19:38 ...
Launching unittests with arguments python -m unittest /home/dmr/workspace/synapse-2/tests/config/test_oidc2.py in /home/dmr/workspace/synapse-2/tests/config
Ran 13 tests in 0.033s
OK
Process finished with exit code 0
1 validation error for OIDCProviderModel
attribute_requirements
value is not a valid tuple (type=type_error.tuple)
1 validation error for OIDCProviderModel
attribute_requirements
value is not a valid tuple (type=type_error.tuple)
1 validation error for OIDCProviderModel
attribute_requirements
value is not a valid tuple (type=type_error.tuple)
1 validation error for OIDCProviderModel
attribute_requirements
none is not an allowed value (type=type_error.none.not_allowed)
1 validation error for OIDCProviderModel
attribute_requirements
value is not a valid tuple (type=type_error.tuple)
1 validation error for OIDCProviderModel
attribute_requirements -> 0
value is not a valid dict (type=type_error.dict)
1 validation error for OIDCProviderModel
attribute_requirements
none is not an allowed value (type=type_error.none.not_allowed)
1 validation error for OIDCProviderModel
attribute_requirements -> 0 -> value
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
attribute_requirements -> 0 -> attribute
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
attribute_requirements -> 0 -> value
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
attribute_requirements -> 0 -> value
none is not an allowed value (type=type_error.none.not_allowed)
1 validation error for OIDCProviderModel
attribute_requirements -> 0 -> value
field required (type=value_error.missing)
1 validation error for OIDCProviderModel
attribute_requirements -> 0 -> attribute
field required (type=value_error.missing)
2 validation errors for OIDCProviderModel
attribute_requirements -> 0 -> attribute
field required (type=value_error.missing)
attribute_requirements -> 0 -> value
field required (type=value_error.missing)
1 validation error for OIDCProviderModel
attribute_requirements -> 0 -> answer
extra fields not permitted (type=value_error.extra)
1 validation error for OIDCProviderModel
client_auth_method
value is not a valid enumeration member; permitted: 'client_secret_basic', 'client_secret_post', 'none' (type=type_error.enum; enum_values=[<ClientAuthMethods.client_secret_basic: 'client_secret_basic'>, <ClientAuthMethods.client_secret_post: 'client_secret_post'>, <ClientAuthMethods.none: 'none'>])
1 validation error for OIDCProviderModel
client_auth_method
value is not a valid enumeration member; permitted: 'client_secret_basic', 'client_secret_post', 'none' (type=type_error.enum; enum_values=[<ClientAuthMethods.client_secret_basic: 'client_secret_basic'>, <ClientAuthMethods.client_secret_post: 'client_secret_post'>, <ClientAuthMethods.none: 'none'>])
1 validation error for OIDCProviderModel
client_auth_method
value is not a valid enumeration member; permitted: 'client_secret_basic', 'client_secret_post', 'none' (type=type_error.enum; enum_values=[<ClientAuthMethods.client_secret_basic: 'client_secret_basic'>, <ClientAuthMethods.client_secret_post: 'client_secret_post'>, <ClientAuthMethods.none: 'none'>])
1 validation error for OIDCProviderModel
client_auth_method
none is not an allowed value (type=type_error.none.not_allowed)
1 validation error for OIDCProviderModel
client_auth_method
value is not a valid enumeration member; permitted: 'client_secret_basic', 'client_secret_post', 'none' (type=type_error.enum; enum_values=[<ClientAuthMethods.client_secret_basic: 'client_secret_basic'>, <ClientAuthMethods.client_secret_post: 'client_secret_post'>, <ClientAuthMethods.none: 'none'>])
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
discover
none is not an allowed value (type=type_error.none.not_allowed)
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
discover
value is not a valid boolean (type=value_error.strictbool)
1 validation error for OIDCProviderModel
authorization_endpoint
authorization_endpoint is required if discovery is disabled (type=value_error)
1 validation error for OIDCProviderModel
authorization_endpoint
authorization_endpoint is required if discovery is disabled (type=value_error)
1 validation error for OIDCProviderModel
token_endpoint
token_endpoint is required if discovery is disabled (type=value_error)
1 validation error for OIDCProviderModel
token_endpoint
token_endpoint is required if discovery is disabled (type=value_error)
1 validation error for OIDCProviderModel
idp_brand
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
idp_brand
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
idp_brand
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
idp_icon
expected string or bytes-like object (type=type_error)
1 validation error for OIDCProviderModel
idp_icon
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
idp_icon
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
idp_icon
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
idp_icon
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
idp_icon
mxc URI '' did not match expected format (type=value_error)
1 validation error for OIDCProviderModel
idp_icon
mxc URI 'notaurl' did not match expected format (type=value_error)
1 validation error for OIDCProviderModel
idp_icon
mxc URI 'https://example.com' did not match expected format (type=value_error)
1 validation error for OIDCProviderModel
idp_icon
mxc URI 'mxc://mxc://mxc://' did not match expected format (type=value_error)
1 validation error for OIDCProviderModel
idp_id
field required (type=value_error.missing)
1 validation error for OIDCProviderModel
idp_id
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
idp_id
none is not an allowed value (type=type_error.none.not_allowed)
1 validation error for OIDCProviderModel
idp_id
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
idp_id
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
idp_id
ensure this value has at least 1 characters (type=value_error.any_str.min_length; limit_value=1)
1 validation error for OIDCProviderModel
idp_id
ensure this value has at most 250 characters (type=value_error.any_str.max_length; limit_value=250)
1 validation error for OIDCProviderModel
idp_id
string does not match regex "^[A-Za-z0-9._~-]+$" (type=value_error.str.regex; pattern=^[A-Za-z0-9._~-]+$)
1 validation error for OIDCProviderModel
idp_id
ensure this value has at most 250 characters (type=value_error.any_str.max_length; limit_value=250)
1 validation error for OIDCProviderModel
issuer
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
issuer
none is not an allowed value (type=type_error.none.not_allowed)
1 validation error for OIDCProviderModel
issuer
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
issuer
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
issuer
field required (type=value_error.missing)
2 validation errors for LegacyOIDCProviderModel
idp_id
str type expected (type=type_error.str)
idp_name
str type expected (type=type_error.str)
2 validation errors for LegacyOIDCProviderModel
idp_id
str type expected (type=type_error.str)
idp_name
str type expected (type=type_error.str)
2 validation errors for LegacyOIDCProviderModel
idp_id
str type expected (type=type_error.str)
idp_name
str type expected (type=type_error.str)
2 validation errors for LegacyOIDCProviderModel
idp_id
none is not an allowed value (type=type_error.none.not_allowed)
idp_name
none is not an allowed value (type=type_error.none.not_allowed)
1 validation error for OIDCProviderModel
scopes
value is not a valid tuple (type=type_error.tuple)
1 validation error for OIDCProviderModel
scopes
value is not a valid tuple (type=type_error.tuple)
1 validation error for OIDCProviderModel
scopes
value is not a valid tuple (type=type_error.tuple)
1 validation error for OIDCProviderModel
scopes
value is not a valid tuple (type=type_error.tuple)
1 validation error for OIDCProviderModel
scopes
value is not a valid tuple (type=type_error.tuple)
1 validation error for OIDCProviderModel
scopes
none is not an allowed value (type=type_error.none.not_allowed)
1 validation error for OIDCProviderModel
scopes -> 0
none is not an allowed value (type=type_error.none.not_allowed)
1 validation error for OIDCProviderModel
scopes -> 0
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
scopes -> 0
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
scopes -> 0
str type expected (type=type_error.str)
1 validation error for OIDCProviderModel
userinfo_endpoint
userinfo_requirement is required if discovery is disabled andthe 'openid' scope is not requested (type=value_error)
1 validation error for OIDCProviderModel
userinfo_endpoint
userinfo_requirement is required if discovery is disabled andthe 'openid' scope is not requested (type=value_error)
1 validation error for OIDCProviderModel
userinfo_endpoint
userinfo_requirement is required if discovery is disabled andthe 'openid' scope is not requested (type=value_error)
This issue has been migrated from #13337.
If anyone wants to see the kind of error messages Pydantic produces, try running this test case on my other pydantic experiment branch.
I think the name of the model isn't user-relevant. The "error context" (stuff in brackets) also loks like noise to an end-user. But we should be able to inspect the
ValidationError
and format it as we please.Originally posted by @DMRobertson in matrix-org/synapse#13188 (comment)
The text was updated successfully, but these errors were encountered: