#NEWLINE# def test_set_default_int( ) : #NEWLINE# #INDENT# def factory( count , **kw ) : #NEWLINE# #INDENT# return List . named ( 'l' ) . using ( default = count , ** kw ) . of ( String . named ( 's' ) . using ( default = 'val' ) ) #NEWLINE# #UNINDENT# schema = factory ( 3 ) #NEWLINE# el = schema ( ) #NEWLINE# eq_ ( len ( el ) , 0 ) #NEWLINE# eq_ ( el . value , [ ] ) #NEWLINE# el = schema ( ) #NEWLINE# el . set_default ( ) #NEWLINE# eq_ ( len ( el ) , 3 ) #NEWLINE# eq_ ( el . value , ( [ 'val' ] * 3 ) ) #NEWLINE# el . append ( None ) #NEWLINE# eq_ ( len ( el ) , 4 ) #NEWLINE# eq_ ( el [ ( - 1 ) ] . value , None ) #NEWLINE# el [ ( - 1 ) ] . set_default ( ) #NEWLINE# eq_ ( el [ ( - 1 ) ] . value , 'val' ) #NEWLINE# el = schema ( [ 'a' , 'b' ] ) #NEWLINE# eq_ ( len ( el ) , 2 ) #NEWLINE# eq_ ( el . value , [ 'a' , 'b' ] ) #NEWLINE# el . set_default ( ) #NEWLINE# eq_ ( len ( el ) , 3 ) #NEWLINE# eq_ ( el . value , ( [ 'val' ] * 3 ) ) #NEWLINE# schema0 = factory ( 0 ) #NEWLINE# el = schema0 ( ) #NEWLINE# el . set_default ( ) #NEWLINE# eq_ ( len ( el ) , 0 ) #NEWLINE# eq_ ( el . value , [ ] ) #NEWLINE# def calculated_default( element ) : #NEWLINE# #INDENT# assert isinstance ( element , List ) #NEWLINE# return 2 #NEWLINE# #UNINDENT# schemaf = List . named ( 'l' ) . using ( default_factory = calculated_default ) . of ( String . named ( 's' ) . using ( default = 'val' ) ) #NEWLINE# el = schemaf ( ) #NEWLINE# el . set_default ( ) #NEWLINE# eq_ ( len ( el ) , 2 ) #NEWLINE# eq_ ( el . value , ( [ 'val' ] * 2 ) )