B
    ž†\  ã               @   sV   d dl Z d dlmZmZ dd„ ZG dd„ de jƒZG dd„ deƒZG d	d
„ d
eƒZdS )é    N)ÚCodeÚUtilityCodec             C   s(   | d o| d   ¡ | d o$| d   ¡ fS )Nr   é   )Ústrip)Útup© r   úDlib/python3.7/site-packages/Cython/Compiler/Tests/TestUtilityLoad.pyÚ
strip_2tup   s    r	   c               @   s@   e Zd ZdZdZdZeddZd ZdZ	e
jZdd„ Zd	d
„ ZdS )ÚTestUtilityLoaderz#
    Test loading UtilityCodes
    )ztest {{loader}} prototypeztest {{loader}} impl)zreq {{loader}} protozreq {{loader}} implÚLoader)ÚloaderzTestUtilityLoader.cc             C   sH   t | j | j¡ƒ}|  || j¡ t | j | j| j¡ƒ}|  || j¡ d S )N)r	   ÚclsÚload_as_stringÚnameÚassertEqualÚexpectedÚfilename)ÚselfÚgotr   r   r   Útest_load_as_string   s    z%TestUtilityLoader.test_load_as_stringc             C   sº   | j  | j¡}t|j|jfƒ}|  || j¡ |j\}t|j|jfƒ}|  || j	¡ | j j| j| j
d}t|j|jfƒ}|  || j¡ | j j| j| j
d}t|j|jfƒ}|  || j¡ d S )N)Ú	from_file)r   Úloadr   r	   ÚprotoÚimplr   r   ÚrequiresÚrequiredr   Zload_cached)r   Úutilityr   r   r   r   r   Ú	test_load   s    zTestUtilityLoader.test_loadN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚdictÚcontextr   r   r   r   r   r   r   r   r   r   r   r
   	   s   
r
   c               @   sn   e Zd ZdZejd  dd¡ejd  dd¡fZejd  dd¡ejd  dd¡fZ	e
jZdd„ Zdd	„ Zd
S )ÚTestTempitaUtilityLoaderz=
    Test loading UtilityCodes with Tempita substitution
    r   z
{{loader}}r   r   c             C   s*   t | jj| j| jdƒ}|  || j¡ d S )N)r#   )r	   r   r   r   r#   r   Úexpected_tempita)r   r   r   r   r   r   =   s    z,TestTempitaUtilityLoader.test_load_as_stringc             C   s’   | j j| j| jd}t|j|jfƒ}|  || j¡ |j	\}t|j|jfƒ}|  || j
¡ | j j| j| j| jd}t|j|jfƒ}|  || j¡ d S )N)r#   )r   r#   )r   r   r   r#   r	   r   r   r   r%   r   Úrequired_tempitar   )r   r   r   r   r   r   r   r   A   s    z"TestTempitaUtilityLoader.test_loadN)r   r   r    r!   r
   r   Úreplacer%   r   r&   r   ZTempitaUtilityCoder   r   r   r   r   r   r   r$   1   s   r$   c               @   sJ   e Zd ZdZdZdZdZdZeddZ	dZ
d	ZejZd
e_ejZejZd
S )ÚTestCythonUtilityLoaderz)
    Test loading CythonUtilityCodes
    )Nztest {{cy_loader}} impl)Nztest CyLoader impl)Nzreq {{cy_loader}} impl)Nzreq CyLoader implZCyLoader)Z	cy_loaderZTestCyUtilityLoaderzTestCyUtilityLoader.pyxN)r   r   r    r!   r   r%   r   r&   r"   r#   r   r   r   ZCythonUtilityCoder   r   r
   r   r$   Ztest_load_tempitar   r   r   r   r(   O   s   
r(   )	ZunittestZCython.Compilerr   r   r	   ZTestCaser
   r$   r(   r   r   r   r   Ú<module>   s
   (