
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
U
    5`a                     @   s  d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	 d dl
mZmZ d dlmZ d dlmZ d dlmZ ed	kred
k rd dlmZ ned
krd dlmZ n dd Zdd Zdd Zdd Zededdifeddiffdd Zdd Zdd Zdd Zd d! Zd"S )#    )Decimal)DistributionDistributionNotFound)mark)TypeDefinition	Validator)assert_failassert_success)validator_factory)BareValidator)PYTHON_VERSION   g333333@)reloadc              	   C   sJ   dd }|   0}td}|d| t| |jdks<tW 5 Q R X d S )Nc                 S   s   t dddS )Ncerberus1.2.3)Zproject_nameversion)r   name r   M/opt/alt/python38/lib/python3.8/site-packages/cerberus/tests/test_assorted.pycreate_fake_distribution   s    z;test_pkgresources_version.<locals>.create_fake_distributionr   pkg_resources.get_distributionr   context
__import__setattrr   __version__AssertionError)monkeypatchr   mr   r   r   r   test_pkgresources_version   s    
r    c              	   C   sJ   dd }|   0}td}|d| t| |jdks<tW 5 Q R X d S )Nc                 S   s   t dd S )Nz%pkg_resources cannot get distribution)r   r   r   r   r   raise_distribution_not_found#   s    z<test_version_not_found.<locals>.raise_distribution_not_foundr   r   unknownr   )r   r!   r   r   r   r   r   test_version_not_found"   s    
r#   c                 C   s0   t | jdkst|   t | jdks,td S )Nr   )lenZ_valid_schemasr   Zclear_caches	validatorr   r   r   test_clear_cache-   s    r'   c                 C   s   | j s
td S N)__doc__r   r%   r   r   r   test_docstring3   s    r*   ztest,documentZ
an_integer<   n   c                 C   s.   z| | W n t k
r    Y n
X t dd S )Nztest didn't fail)r   )testdocumentr   r   r   test_that_test_fails;   s
    r/   c                     sl   t dtfd dtdi} dddii}t } |jd< t| || G  fdddt}| }t| || d S )Ndecimalr   Zmeasurementr   typec                       s   e Zd Zej Z ed< dS )z'test_dynamic_types.<locals>.MyValidatorr0   N)__name__
__module____qualname__r   types_mappingcopyr   Zdecimal_typer   r   MyValidatorQ   s   
r8   )r   r   r   r5   r	   )r.   Zschemar&   r8   r   r7   r   test_dynamic_typesH   s    
r9   c                   C   s   t jt ttfkstt jd S r(   )r   __mro__r   objectr   r   r   r   r   test_mroY   s    r<   c                     s6   G  fdddt  td } |  }|jd s2td S )Nc                       s   e Zd Z fddZ  ZS )ztest_mixin_init.<locals>.Mixinc                    s   d|d< t  | j|| d S NTr-   super__init__selfargskwargs)Mixin	__class__r   r   r@   _   s    z'test_mixin_init.<locals>.Mixin.__init__r2   r3   r4   r@   __classcell__r   rE   rF   r   rE   ^   s   rE   r8   r-   )r;   r
   _configr   )r8   r&   r   rI   r   test_mixin_init]   s    
rL   c                     s,   G  fdddt    } | jd s(td S )Nc                       s   e Zd Z fddZ  ZS )z"test_sub_init.<locals>.MyValidatorc                    s   d|d< t  | j|| d S r=   r>   rA   )r8   rF   r   r   r@   j   s    z+test_sub_init.<locals>.MyValidator.__init__rG   r   r8   rJ   r   r8   i   s   r8   r-   )r   rK   r   r%   r   rM   r   test_sub_inith   s    rN   N) r0   r   Zpkg_resourcesr   r   Zpytestr   r   r   r   Zcerberus.testsr   r	   Zcerberus.utilsr
   Zcerberus.validatorr   Zcerberus.platformr   Zimpr   	importlibr    r#   r'   r*   Zparametrizer/   r9   r<   rL   rN   r   r   r   r   <module>   s0   
	