@@ -260,14 +260,38 @@ def test_validate_ui_locales_supported():
260260 metadata = AuthorizationServerMetadata ()
261261 metadata .validate_ui_locales_supported ()
262262
263+ # valid
264+ metadata = AuthorizationServerMetadata ({"ui_locales_supported" : ["en" ]})
265+ metadata .validate_ui_locales_supported ()
266+
267+ metadata = AuthorizationServerMetadata (
268+ {"ui_locales_supported" : ["en-US" , "fr-FR" , "zh-Hans-CN" ]}
269+ )
270+ metadata .validate_ui_locales_supported ()
271+
272+ # private use
273+ metadata = AuthorizationServerMetadata ({"ui_locales_supported" : ["x-custom" ]})
274+ metadata .validate_ui_locales_supported ()
275+
263276 # not array
264277 metadata = AuthorizationServerMetadata ({"ui_locales_supported" : "en" })
265278 with pytest .raises (ValueError , match = "JSON array" ):
266279 metadata .validate_ui_locales_supported ()
267280
268- # valid
269- metadata = AuthorizationServerMetadata ({"ui_locales_supported" : ["en" ]})
270- metadata .validate_ui_locales_supported ()
281+ # underscore instead of hyphen
282+ metadata = AuthorizationServerMetadata ({"ui_locales_supported" : ["fr_FR" ]})
283+ with pytest .raises (ValueError , match = "BCP 47" ):
284+ metadata .validate_ui_locales_supported ()
285+
286+ # single char (not private-use)
287+ metadata = AuthorizationServerMetadata ({"ui_locales_supported" : ["a-US" ]})
288+ with pytest .raises (ValueError , match = "BCP 47" ):
289+ metadata .validate_ui_locales_supported ()
290+
291+ # subtag too long
292+ metadata = AuthorizationServerMetadata ({"ui_locales_supported" : ["toolongsubtag" ]})
293+ with pytest .raises (ValueError , match = "BCP 47" ):
294+ metadata .validate_ui_locales_supported ()
271295
272296
273297def test_validate_op_policy_uri ():
0 commit comments