U 5`a @s ddlmZddlmZmZddlmZddlmZm Z ddl m Z m Z ddl mZddlmZddlmZed kred krdd lmZned krdd lmZnd d ZddZddZddZede ddife ddiffddZddZddZddZd d!Zd"S)#)Decimal) DistributionDistributionNotFound)mark)TypeDefinition Validator) assert_failassert_success)validator_factory) BareValidator)PYTHON_VERSIONg333333 @)reloadc CsJdd}|0}td}|d|t||jdks.create_fake_distributionrpkg_resources.get_distributionrcontext __import__setattrr __version__AssertionError) monkeypatchrmrrrrtest_pkgresources_versions   r c CsJdd}|0}td}|d|t||jdks.raise_distribution_not_foundrrunknownr)rr!rrrrrtest_version_not_found"s   r#cCs0t|jdkst|t|jdks,tdS)Nr)lenZ_valid_schemasrZ clear_caches validatorrrrtest_clear_cache-sr'cCs|js tdSN)__doc__rr%rrrtest_docstring3sr*z test,documentZ an_integer<ncCs.z ||Wntk r Yn XtddS)Nztest didn't fail)r)testdocumentrrrtest_that_test_fails;s  r/csltdtfddtdi}dddii}t}|jd<t|||Gfdddt}|}t|||dS)NdecimalrZ measurementrtypecseZdZejZed<dS)z'test_dynamic_types..MyValidatorr0N)__name__ __module__ __qualname__r types_mappingcopyrZ decimal_typerr MyValidatorQs r8)rrrr5r )r.Zschemar&r8rr7rtest_dynamic_typesHs    r9cCstjtttfksttjdSr()r__mro__r objectrrrrrtest_mroYsr<cs6Gfdddttd}|}|jds2tdS)NcseZdZfddZZS)ztest_mixin_init..Mixincsd|d<t|j||dSNTr-super__init__selfargskwargs)Mixin __class__rrr@_sz'test_mixin_init..Mixin.__init__r2r3r4r@ __classcell__rrErFrrE^srEr8r-)r;r _configr)r8r&rrIrtest_mixin_init]s rLcs,Gfdddt}|jds(tdS)NcseZdZfddZZS)z"test_sub_init..MyValidatorcsd|d<t|j||dSr=r>rA)r8rFrrr@jsz+test_sub_init..MyValidator.__init__rGrr8rJrr8isr8r-)rrKrr%rrMr test_sub_inithsrNN) r0rZ pkg_resourcesrrZpytestrrrrZcerberus.testsrr Zcerberus.utilsr Zcerberus.validatorr Zcerberus.platformr Zimpr importlibr r#r'r*Z parametrizer/r9r<rLrNrrrrs0