3 :X@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 /usr/lib/python3.6/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)Zcreatez json.load) r mock_openZpatchrrstartZ addCleanupstopZMockZ return_value)r rZ 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) NZanyOfZminimumtypestringZrequiredTz{error.message})r#r instances error_format)stdoutstderr)rZ assertRaisesrrrunr)r r0r1r r r #test_draft3_schema_draft4_validator?s  z+TestCLI.test_draft3_schema_draft4_validatorcCsXtt}}tjtidgdd||d}|j|j|j|j|j|ddS)Nr-z{error.message})r#rr.r/)r0r1r)rrr2r assertFalsegetvalue assertEqual)r r0r1 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!r-)rz"{error.instance} - {error.message})r#rr.r/)r0r1z1 - I am an error!)rrrr2rr4r5r6)r errorr0r1r7r r r test_unsuccessful_validationcs z$TestCLI.test_unsuccessful_validationcCstdddtdddg}tdddg}tt}}tjt||iddgdd||d }|j|j|j|jd |j|ddS) N9r-)r87z#{error.instance} - {error.message} )r#rr.r/)r0r1z1 - 9 1 - 8 2 - 7 )rrrr2rr4r5r6)r Z first_errorsZ second_errorsr0r1r7r r r /test_unsuccessful_validation_multiple_instancests z7TestCLI.test_unsuccessful_validation_multiple_instancesN)rrrr3r8r:r?r r r r r)>sr)N)Z jsonschemarrrZjsonschema.compatrZjsonschema.exceptionsrZjsonschema.tests.compatrrrZTestCaserr)r r r r s   %