U `O@sddlZddlZddlmZmZmZmZddlmZidddfddZ ddZ dd Z dd d Z dd dZ dddZddZddZddZdddZdS)N)errors Validator SchemaError DocumentError) sample_schemac Csf|dkrt}|dkr8t||||W5QRXn*tj|t|d|||W5QRXdS)z Tests whether a specific exception is raised. Optionally also tests whether the exception message is as expected. N)match)rpytestZraisesreescape)Z exceptiondocumentschema validatormsgrH/opt/alt/python38/lib/python3.8/site-packages/cerberus/tests/__init__.pyassert_exception s rcGsttf|dS)zITests whether a validation raises an exception due to a malformed schema.N)rrargsrrrassert_schema_errorsrcGsttf|dS)zKTests whether a validation raises an exception due to a malformed document.N)rrrrrrassert_document_errorsrFc Csh|dkrtt}||||}|j}|dk rRt|f||dk rdt|dj|n|dk rdt|||S)z!Tests whether a validation fails.Nr)rr_errorsassert_has_errorassert_has_errors child_errors) r r r updateerrorrrresultZ actual_errorsrrr assert_fail$s   rcCs.|dkrtt}||||}|s*t|jdS)z$Tests whether a validation succeeds.N)rrAssertionErrorr)r r r rrrrrassert_successJs  rrc Cst|ts|f}t|ts |f}t|D]@\}}z |js8Wn(tk rNYq(tk rbYq(Xqq(tdj||t|j|||d|S)Nz Error with properties: document_path={doc_path} schema_path={schema_path} code={code} constraint={constraint} info={info} not found in errors: {errors} )Zdoc_pathZ schema_pathcodeinfo constraintr) isinstancetuple enumerateZis_group_errorr Exceptionformathexr )rZd_pathZs_pathZ error_defr"r!irrrrrTs0   rcCs|D]}t|f|qdSN)r)rZ _exp_errorsrrrrrsrc OsZzt|f||Wn8tk r(Yn.tk rL}z|W5d}~XYn XtddS)NzAn unexpected error occurred.)rrr&)rrkwargserrrassert_not_has_errorsr-cCs"t||i||dftj|fddS)Ntype)r)rrZBAD_TYPE)ZfieldZ data_typevaluerrrassert_bad_typesr0cCs |dkrtt}t|||dSr*)rrr)r Zexpectedr r rrrassert_normalizeds r1)NNFNNN)NNF)r)NN)r rZcerberusrrrrZcerberus.tests.conftestrrrrrrrrr-r0r1rrrrs&  & /