a s] @s\dZddlmZddlmZmZmZddlmZe dZ e dZ ddZ Gd d d eZd S) zP Tests for the parts of jsonschema related to the :validator:`format` property. )TestCase) FormatErrorValidationError FormatChecker)Draft4ValidatorzBoom!zBang!cCs|dkr ttdS)Nbang)BANGBOOMthingr @/usr/lib/python3.9/site-packages/jsonschema/tests/test_format.pyboomsrc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)TestFormatCheckercCstdd}||jdS)Nr formats)rZ assertFalsecheckersselfcheckerr r r test_it_can_validate_no_formatss z1TestFormatChecker.test_it_can_validate_no_formatscCs:|ttdgdWdn1s,0YdS)Nzo noesr) assertRaisesKeyErrorr)rr r r .test_it_raises_a_key_error_for_unknown_formatss z@TestFormatChecker.test_it_raises_a_key_error_for_unknown_formatscCsFttj}|tjjdtdt|tjt|tdfddSNrr )r)dictrrZ addCleanuppopZ cls_checksr assertEqual)roriginalr r r !test_it_can_register_cls_checkerss z3TestFormatChecker.test_it_can_register_cls_checkerscCs4t}|dt||jttjtdfddSr)rchecksrrrrrr r r test_it_can_register_checkers's z/TestFormatChecker.test_it_can_register_checkerscCst}|jdttdt|t}|jdddWdn1sJ0Y||j j t||j j t|tt |jdddWdn1s0YdS)NrZraises instanceformatr) rr typer rrrcheckassertIs exceptioncause __cause__r)rrcmr r r !test_it_catches_registered_errors/s ,z3TestFormatChecker.test_it_catches_registered_errorscCst}|jdtdttddi|d}|t}|dWdn1sR0Y||j j t ||j j t dS)Nrr"r&)Zformat_checkerr ) rr ValueErrorrrrrZvalidater)r*r+r r,)rrZ validatorr-r r r 7test_format_error_causes_become_validation_error_causes=s (zITestFormatChecker.test_format_error_causes_become_validation_error_causescCsBt}|t|jdddWdn1s40YdS)Nz not-an-ipv4Zipv4r$)rrrr(rr r r 'test_format_checkers_come_with_defaultsHs z9TestFormatChecker.test_format_checkers_come_with_defaultscCsTtdd}|ddd|ddd|dd d|t|d dS) Nr rZfoocSsdSNTr r r r r Sz-TestFormatChecker.test_repr..ZbarcSsdSr2r r r r r r3Tr4ZbazcSsdSr2r r r r r r3Ur4z.)rr rreprrr r r test_reprQs zTestFormatChecker.test_reprN) __name__ __module__ __qualname__rrrr!r.r0r1r6r r r r rs   rN)__doc__ZunittestrZ jsonschemarrrZjsonschema.validatorsrr/r ZeroDivisionErrorrrrr r r r s