3 F\@slddlmZmZmZddlmZddlmZddlm Z m Z ddZ Gddde j Z Gd d d e j Zd S) )Draft4ValidatorValidationErrorcli)StringIO) SchemaError)mockunittestcs$ttGfdddt}|S)Ncs(eZdZddZfddZddZdS)z%fake_validator..FakeValidatorc_sdS)N)selfargskwargsr r u/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/jsonschema/jsonschema/tests/test_cli.py__init__ sz.fake_validator..FakeValidator.__init__csr jSgS)N)pop)r instance)errorsr r iter_errorssz1fake_validator..FakeValidator.iter_errorscSsdS)Nr )r schemar r r check_schemasz2fake_validator..FakeValidator.check_schemaN)__name__ __module__ __qualname__rrrr )rr r FakeValidator s r)listreversedobject)rrr )rr fake_validators  rc@s*eZdZeZddZddZddZdS) TestParsercCs`tj}tjjtd|dd}|j|j|jtj}i|_ tjd}|j|j|jdS)NopenT)createz json.load) r mock_openpatchrrstartZ addCleanupstopZMockZ return_value)r r Z patch_openZmock_json_loadZpatch_json_loadr r r setUps  zTestParser.setUpcCs*tjdddddg}|j|d|jdS)Nz --validatorz2jsonschema.tests.test_cli.TestParser.FakeValidatorz --instancezfoo.jsonz schema.json validator)r parse_argsassertIsr)r argumentsr r r 2test_find_validator_by_fully_qualified_object_name(s z=TestParser.test_find_validator_by_fully_qualified_object_namecCs(tjdddddg}|j|dtdS)Nz --validatorrz --instancezfoo.jsonz schema.jsonr%)rr&r'r)r r(r r r !test_find_validator_in_jsonschema3s z,TestParser.test_find_validator_in_jsonschemaN)rrrrrr$r)r*r r r r rs  rc@s,eZdZddZddZddZddZd S) TestCLIcCsZtt}}|jt8tjtdddiddiddigidgd d ||d WdQRXdS) NZanyOfZminimumtypestringrequiredTz{error.message})r%r instances error_format)stdoutstderr)rZ assertRaisesrrrunr)r r3r4r r r #test_draft3_schema_draft4_validator?s  z+TestCLI.test_draft3_schema_draft4_validatorcCsXtt}}tjtidgdd||d}|j|j|j|j|j|ddS)Nr0z{error.message})r%rr1r2)r3r4r)rrr5r assertFalsegetvalue assertEqual)r r3r4 exit_coder r r test_successful_validationSsz"TestCLI.test_successful_validationcCsjtddd}tt}}tjt|gidgdd||d}|j|j|j|jd|j|ddS)NzI am an error!r0)rz"{error.instance} - {error.message})r%rr1r2)r3r4z1 - I am an error!)rrrr5rr7r8r9)r errorr3r4r:r r r test_unsuccessful_validationcs z$TestCLI.test_unsuccessful_validationcCstdddtdddg}tdddg}tt}}tjt||iddgdd||d }|j|j|j|jd |j|ddS) N9r0)r87z#{error.instance} - {error.message} )r%rr1r2)r3r4z1 - 9 1 - 8 2 - 7 )rrrr5rr7r8r9)r Z first_errorsZ second_errorsr3r4r:r r r /test_unsuccessful_validation_multiple_instancests z7TestCLI.test_unsuccessful_validation_multiple_instancesN)rrrr6r;r=rBr r r r r+>sr+N)Z jsonschemarrrZjsonschema.compatrZjsonschema.exceptionsrZjsonschema.tests.compatrrrZTestCaserr+r r r r s   %