a q4u]w@sddlmZddlZddlZddlZddlmZmZmZm Z ddl m Z ddl m Z ddZGdd d eZGd d d eZdS) )TestCaseN)Draft4ValidatorValidationErrorcli __version__)NativeIO) SchemaErrorcs$ttGfdddt}|S)Ncs(eZdZddZfddZddZdS)z%fake_validator..FakeValidatorc_sdSN)selfargskwargsr r =/usr/lib/python3.9/site-packages/jsonschema/tests/test_cli.py__init__sz.fake_validator..FakeValidator.__init__csr SgSr )pop)r instanceerrorsr r iter_errorssz1fake_validator..FakeValidator.iter_errorscSsdSr r )r schemar r r check_schemasz2fake_validator..FakeValidator.check_schemaN)__name__ __module__ __qualname__rrrr rr r FakeValidators r)listreversedobject)rrr rrfake_validator s  rc@s:eZdZeZdZdZddZddZddZ d d Z d S) TestParserzfoo.jsonz schema.jsoncCs|jt_|ttddS)Nopen) fake_openrr Z addCleanupdelattr)r r r rsetUp#szTestParser.setUpcCs>||jkrd}n ||jkr i}n|d|tt|S)Nz What is {!r}) instance_file schema_fileZfailformatrjsondumps)r pathcontentsr r rr!'s   zTestParser.fake_opencCs.tddd|j|jg}||d|jdS)N --validatorz2jsonschema.tests.test_cli.TestParser.FakeValidator --instance validator)r parse_argsr%r&assertIsrr Z argumentsr r r2test_find_validator_by_fully_qualified_object_name0sz=TestParser.test_find_validator_by_fully_qualified_object_namecCs,tddd|j|jg}||dtdS)Nr,rr-r.)rr/r%r&r0rr1r r r!test_find_validator_in_jsonschema;sz,TestParser.test_find_validator_in_jsonschemaN) rrrrrr%r&r#r!r2r3r r r rrs  rc@s4eZdZddZddZddZddZd d Zd S) TestCLIcCsntt}}|tBtjtdddiddiddigidgd d ||d Wdn1s`0YdS) NZanyOfZminimumtypestringrequiredT{error.message}r.rZ instancesZ error_formatstdoutstderr)rZ assertRaisesrrrunr)r r=r>r r r#test_draft3_schema_draft4_validatorGs   z+TestCLI.test_draft3_schema_draft4_validatorcCsXtt}}tjtidgdd||d}||||||ddS)Nr9r:r;r<r)rrr?r assertFalsegetvalue assertEqual)r r=r> exit_coder r rtest_successful_validation[s z"TestCLI.test_successful_validationcCsjtddd}tt}}tjt|gidgdd||d}||||d||ddS)NzI am an error!r9rz"{error.instance} - {error.message}r;r<z1 - I am an error!rrrr?rrArBrC)r errorr=r>rDr r rtest_unsuccessful_validationks  z$TestCLI.test_unsuccessful_validationcCstdddtdddg}tdddg}tt}}tjt||iddgdd||d }||||d ||ddS) N9r9rF87z#{error.instance} - {error.message} r;r<z1 - 9 1 - 8 2 - 7 rG)r Z first_errorsZ second_errorsr=r>rDr r r/test_unsuccessful_validation_multiple_instances|s"   z7TestCLI.test_unsuccessful_validation_multiple_instancescCs8tjtjdddgtjd}|d}||tdS)Nz-m jsonschemaz --version)r>zutf-8) subprocessZ check_outputsys executableZSTDOUTdecodestriprCr)r versionr r r test_versions  zTestCLI.test_versionN)rrrr@rErIrNrVr r r rr4Fs r4)Zunittestrr(rPrQrOrrrrZjsonschema.compatrZjsonschema.exceptionsrrrr4r r r rs   )