
­­­­­­­­­­­­­­­­­­
<!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)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
    r0   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>.MyValidatorr1   N)__name__
__module____qualname__r   types_mappingcopyr   Zdecimal_typer   r   MyValidatorQ   s   
r9   )r   r   r   r6   r	   )r/   schemar'   r9   r   r8   r   test_dynamic_typesH   s    
r;   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   rB   _   s    z'test_mixin_init.<locals>.Mixin.__init__r3   r4   r5   rB   __classcell__r   rG   rH   r   rG   ^   s   rG   r9   r.   )r=   r
   _configr   )r9   r'   r   rK   r   test_mixin_init]   s    
rN   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@   rC   )r9   rH   r   r   rB   j   s    z+test_sub_init.<locals>.MyValidator.__init__rI   r   r9   rL   r   r9   i   s   r9   r.   )r   rM   r   r&   r   rO   r   test_sub_inith   s    rP   N) r1   r   pkg_resourcesr   r   pytestr   r   r   r   Zcerberus.testsr   r	   Zcerberus.utilsr
   Zcerberus.validatorr   Zcerberus.platformr   impr   	importlibr!   r$   r(   r+   Zparametrizer0   r;   r>   rN   rP   r   r   r   r   <module>   s0   
	