3 F\d@sJdZddlmZmZddlmZmZmZddlm Z Gdddej Z dS)zQ Tests for the parts of jsonschema related to the :validator:`format` property. )mockunittest) FormatErrorValidationError FormatChecker)Draft4Validatorc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)TestFormatCheckercCstj|_dS)N)rZMockfn)selfr x/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/jsonschema/jsonschema/tests/test_format.pysetUp szTestFormatChecker.setUpcCstfd}|j|jdS)N)formats)rZ assertFalsecheckers)r checkerr r r test_it_can_validate_no_formatss z1TestFormatChecker.test_it_can_validate_no_formatsc Cs&|jttdgdWdQRXdS)Nzo noes)r) assertRaisesKeyErrorr)r r r r .test_it_raises_a_key_error_for_unknown_formatss z@TestFormatChecker.test_it_raises_a_key_error_for_unknown_formatsc CsJtjjtjdd.tjd|j|jtjd|jffiWdQRXdS)NT)clearnew)rpatchdictrrZ cls_checksr assertEqual)r r r r !test_it_can_register_cls_checkerssz3TestFormatChecker.test_it_can_register_cls_checkerscCs8t}|jd|j|j|jttj|jffddS)Nr)r)rchecksr rrr)r rr r r test_it_can_register_checkerss z/TestFormatChecker.test_it_can_register_checkerscCst}t}|j_|jdtd|j|jt}|jddWdQRX|j|j j ||j|j j |t |j_|jt |jddWdQRXdS)Nfoo)raisesbar) r ValueErrorr side_effectrrrcheckassertIs exceptioncause __cause__AttributeError)r rr%cmr r r !test_it_catches_registered_errors%s  z3TestFormatChecker.test_it_catches_registered_errorsc Cslt}|jdtd|jt}|j_tddi|d}|jt}|jdWdQRX|j |j j |dS)Nr)rformat)Zformat_checkerr) rrr r r!rrrvalidater#r$r&)r rr%Z validatorr(r r r 7test_format_error_causes_become_validation_error_causes6s zITestFormatChecker.test_format_error_causes_become_validation_error_causesN) __name__ __module__ __qualname__r rrrrr)r,r r r r r srN) __doc__Zjsonschema.tests.compatrrZ jsonschemarrrZjsonschema.validatorsrZTestCaserr r r r s