U !`V.@s~ddlmZmZddlmZejZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZdS)) Validatorerrors) assert_failcCstdddiid}ddi|_|dtjd|jd}|jdksDt|jdksRt|j d ks`t|j dksnt|j dks|t|j dkst|j d kst|jrt|jrtdS) Nfootypestringschema*rr)rr$)r)rdocument_errorrBAD_TYPE_errors document_pathAssertionError schema_pathcoderule constraintvalueinfois_group_erroris_logic_errorverrorrK/opt/alt/python38/lib/python3.8/site-packages/cerberus/tests/test_errors.py test__error_1 s   r cCstddddiiid}dddii|_|dtjd|jd }|jd ksLt|jd ksZt|j d ksht|j dksvt|j ddikst|j ddikst|j d kst|jst|jrtdS)Nr keysrulesrintegerr0barrrr )rr!)r)rr rrZ KEYSRULESrrrrrrrrrrrrrrr test__error_2s  r&cCsdddddddg}tdd |iid }dd i|_|dtjd dd |jd}|jdks^t|jdkslt|j dkszt|j d kst|j |kst|j d kst|j dkst|jst|jstdS)Nrz 0x[0-9a-f]{2})rregexr"r)rminmaxroneofrZ0x100rr rr+)rrr,)rr rrONEOFrrrrrrrrrrr)Zvalidsrrrrr test__error_3*s     r0cCsRdddddiiii}dddii}t|||d|j}|j}d|ksFtt|djdksdt|d|djdjtjjkstd|dkst|ddjdjdkst| d djdkstd|kstd|dkstd|ddkstd|dddkst|ddddjdjdks4t| d djdksNtdS) Nrr r$rrr validator)rr$)rr r$r) rdocument_error_treeschema_error_treerlenrrMAPPING_SCHEMArZfetch_errors_fromr2r r Z d_error_treeZ s_error_treerrrtest_error_tree_from_subschema>s$   &r9cCsddddiddigii}dgi}t|||d|j}|j}d|ksFt|djdjgks^td|ksjtd|dksztd|ddkstd|ddkstd|dddkst|ddddjdjgkstdS) NrZanyofrrr"r1rr3)rr4r5rrrr8rrrtest_error_tree_from_anyofWs  r:cCsdd}ddiddiddd d d gd id }ddddddddgd }t|||d|j}|j}t|jdksttt|jdkstt|djdkstt|djdkst|dddkstt|ddjdkstt|ddjdkstt|ddjdkstt|ddjdks2tt|ddjdksNtt|dddjdksntt|dddjdksttddtjjdddd}tddtj jdd dd}td dtjjdddd}td dtj jdd dd} |ddjd|ks t|ddjd|ks&t||ddj|| ||dddj||||dddj|| t|d!jdkstt|d!djdkst|d!ddkstt|d!djd"kstt|d!jdkstt|d!djdks tt|d!ddjdks*tt|d!dd#ddjdksRtt|d!dd#ddjdkszttd$d%tjjdd dd} td&d'tj jd#d(dd} td&d)tj jdd dd} td&d*tj jdd dd} |d!djd| kst||d!dj| | | |d!dd#jd| ks.t|d!dd#ddjd| ksVt|d!dd#ddjd| ks~t|d!ddjd| kstdS)+NcWs(|D]}|D]}||kr qq tqdS)N)r)rZref_errsZref_errrrrrassert_has_all_errorsjs z6test_nested_error_paths..assert_has_all_errorsrr"r'z[a-z]*)r! valuesrulesr rz[a-z]*$z[A-Z]*)rZ oneof_regex)a_dicta_listabcZaBcZabC)roner,threerr1r=r,r@r3rAr!r<)r=r@)r=r!rr)r=r,)r=r<r')r=rAr>r+)r>r)r>r r)r>r,)r>r r+Zirrelevant_at_this_point)r>r r+rr')r>r r+r3r') rr4r5r6rrValidationErrorrrZREGEX_MISMATCHr/)r2r;r r ZdetsetZref_err1Zref_err2Zref_err3Zref_err4Zref_err5Zref_err6Zref_err7Zref_err8rrrtest_nested_error_pathsgs         ((     ((rEcCsrGdddt}|}|jdddddidd dii|_|ddd iiddd d gigi}|j|ksntdS) Nc@seZdZddZdS)zEtest_path_resolution_for_registry_references..CustomValidatorcSs tddS)Nz Failed coerce) Exception)selfrrrr_normalize_coerce_customsz^test_path_resolution_for_registry_references..CustomValidator._normalize_coerce_customN)__name__ __module__ __qualname__rHrrrrCustomValidatorsrLZschema1ZchildZbooleanZcustom)rZcoerceparentr [zmust be of boolean typez.field 'child' cannot be coerced: Failed coerce)rZschema_registryaddr Zvalidaterr)rLr2Zexpectedrrr,test_path_resolution_for_registry_referencess"  rPcCsdddddiidi}dddii}t|}||d|jks@td|jdksRtd|jks`td|jdksrttj|jdjksttj|jdksttj|jddksttj|jddksttj|jddddkst|jdtjjd jtjjkstdS) Nrdictr$rZnumber)rr Zzeror r) rr4rr5rr7r child_errorsr)r r r2rrr test_queriess$ rSc CsXt}gi}}|tdgdgddddd|d|jdgi|||ksVt|tdgdgddd d d|d|jdjd d gi|||kst|td dgd d dgddddd|d d|jdjdd gigi|||kst|td dgd d dgddddd|d dd|jdjdd |||ksTtdS)NrcreadonlyTrr$Br)r3r,)rZzapr r rrAr'u ^p[äe]ng$Zboomr)rBasicErrorHandlerappendrCupdatemessagesrformat)Zhandlerrrefrrrtest_basic_error_handler*sD $ $r^cCsddddiddigii}ddi}ddtj|dddf}|d |d d tjdf|d |d d tjdfg}t|||||d |jdtjjddgdgdgikstdS)Nrr+rr"rgQk7@r-rrr3)rr)r3r)r2rrRr.zmust be of integer typezmust be of string type)zoneof definition 0zoneof definition 1)rr/rrrXr[r)r2r r rrRrrrtest_basic_error_of_errorsMs* r_cCsDdddddiddigdi|_|ddgi|jddgiks@tdS) NZ test_listlistTrr)rZrequireditemsZtestz#length of list should be 2, it is 1)r rrr1rrrtest_wrong_amount_of_itemscsrbN)ZcerberusrrZcerberus.testsrrCr r&r0r9r:rErPrSr^r_rbrrrrs #