#NEWLINE# def test_schemas_are_correctly_validated( self ) : #NEWLINE# #INDENT# 'Test validation of schemas.' #NEWLINE# invalid_schemas = [ [ 'type' ] , { #NEWLINE# #INDENT# 'type' : 'invalid' , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'dict' , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'list' , #NEWLINE# 'items' : { #NEWLINE# #INDENT# #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'list' , #NEWLINE# 'items' : { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# #UNINDENT# } , #NEWLINE# 'len' : ( - 1 ) , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'list' , #NEWLINE# 'items' : { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# #UNINDENT# } , #NEWLINE# 'len' : 0 , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'list' , #NEWLINE# 'items' : { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# #UNINDENT# } , #NEWLINE# 'validators' : [ { #NEWLINE# #INDENT# 'id' : 'has_length_at_most' , #NEWLINE# 'max_value' : 0 , #NEWLINE# #UNINDENT# } ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'dict' , #NEWLINE# 'items' : { #NEWLINE# #INDENT# 'type' : 'float' , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'dict' , #NEWLINE# 'properties' : { #NEWLINE# #INDENT# 123 : { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# 'validators' : [ { #NEWLINE# #INDENT# 'id' : 'fake_validator' , #NEWLINE# #UNINDENT# } ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# 'validators' : [ { #NEWLINE# #INDENT# 'id' : 'is_nonempty' , #NEWLINE# 'fake_arg' : 'unused_value' , #NEWLINE# #UNINDENT# } ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# 'validators' : [ { #NEWLINE# #INDENT# 'id' : 'matches_regex' , #NEWLINE# #UNINDENT# } ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'float' , #NEWLINE# 'validators' : [ { #NEWLINE# #INDENT# 'id' : 'is_at_least' , #NEWLINE# 'min_value' : 'value_of_wrong_type' , #NEWLINE# #UNINDENT# } ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# 'ui_config' : { #NEWLINE# #INDENT# 'rows' : ( - 1 ) , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# 'ui_config' : { #NEWLINE# #INDENT# 'coding_mode' : 'invalid_mode' , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } ] #NEWLINE# valid_schemas = [ { #NEWLINE# #INDENT# 'type' : 'float' , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'bool' , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'dict' , #NEWLINE# 'properties' : [ { #NEWLINE# #INDENT# 'name' : 'str_property' , #NEWLINE# 'schema' : { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'list' , #NEWLINE# 'items' : { #NEWLINE# #INDENT# 'type' : 'list' , #NEWLINE# 'items' : { #NEWLINE# #INDENT# 'type' : 'list' , #NEWLINE# 'items' : { #NEWLINE# #INDENT# 'type' : 'bool' , #NEWLINE# #UNINDENT# } , #NEWLINE# 'len' : 100 , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'list' , #NEWLINE# 'items' : { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# #UNINDENT# } , #NEWLINE# 'validators' : [ { #NEWLINE# #INDENT# 'id' : 'has_length_at_most' , #NEWLINE# 'max_value' : 3 , #NEWLINE# #UNINDENT# } ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'float' , #NEWLINE# 'validators' : [ { #NEWLINE# #INDENT# 'id' : 'is_at_least' , #NEWLINE# 'min_value' : 3.0 , #NEWLINE# #UNINDENT# } ] , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# 'ui_config' : { #NEWLINE# #INDENT# 'rows' : 5 , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , { #NEWLINE# #INDENT# 'type' : 'unicode' , #NEWLINE# 'ui_config' : { #NEWLINE# #INDENT# 'coding_mode' : 'python' , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } ] #NEWLINE# for schema in valid_schemas : #NEWLINE# #INDENT# validate_schema ( schema ) #NEWLINE# #UNINDENT# for schema in invalid_schemas : #NEWLINE# #INDENT# with self . assertRaises ( ( AssertionError , KeyError ) ) : #NEWLINE# #INDENT# validate_schema ( invalid_schemas )