U
    ±[ÖeY%  ã                   @   sÖ   d dl mZ d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dl
mZ d d	l
mZ d d
l
mZ d dl
mZ eddddƒZeddddƒZeddgdZedeejejƒZG dd„ de	jƒZdS )é    )ÚMock)Úsentinel)ÚDispatchExtensionManager)ÚNameDispatchExtensionManager)Ú	Extension)Úutils)ÚDriverManager)ÚEnabledExtensionManager)ÚExtensionManager)ÚHookManager)ÚNamedExtensionManagerÚtest_extensionNÚanother_oneztest.extensionÚobj)Úmodule_nameÚattrsÚtest_driverc                   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!d?d@„ Z"dAS )BÚTestTestManagerc                 C   s$   t tg}t |¡}|  ||j¡ d S ©N)r   Útest_extension2r
   Úmake_test_instanceÚassertEqualÚ
extensions©Úselfr   Úem© r   úc/var/www/html/services/stratfitenv/lib/python3.8/site-packages/stevedore/tests/test_test_manager.pyÚ,test_instance_should_use_supplied_extensions&   s    
z<TestTestManager.test_instance_should_use_supplied_extensionsc                 C   s   t  g ¡}|  |jd¡ d S ©NZTESTING©r
   r   r   Ú	namespace©r   r   r   r   r   Ú+test_instance_should_have_default_namespace+   s    
z;TestTestManager.test_instance_should_have_default_namespacec                 C   s$   d}t jg |d}|  ||j¡ d S ©Nztesting.1.2.3)r!   r    ©r   r!   r   r   r   r   Ú+test_instance_should_use_supplied_namespace/   s    z;TestTestManager.test_instance_should_use_supplied_namespacec                 C   s"   t  tg¡}|  tj| ¡ ¡ d S r   )r
   r   r   ZassertInÚnameÚnamesr"   r   r   r   Ú$test_extension_name_should_be_listed4   s    z4TestTestManager.test_extension_name_should_be_listedc                 C   s$   t  tg¡}|  ttt|ƒƒ¡ d S r   )r
   r   r   r   ÚnextÚiterr"   r   r   r   Ú$test_iterator_should_yield_extension8   s    z4TestTestManager.test_iterator_should_yield_extensionc                 C   s"   t  tg¡}|  t|tj ¡ d S r   )r
   r   r   r   r'   r"   r   r   r   Ú%test_manager_should_allow_name_access<   s    z5TestTestManager.test_manager_should_allow_name_accessc                 C   s*   t  tg¡}tƒ }| |¡ | t¡ d S r   )r
   r   r   r   ÚmapÚassert_called_once_with©r   r   Úfuncr   r   r   Útest_manager_should_call@   s    
z(TestTestManager.test_manager_should_callc                 C   s6   t  ttg¡}tƒ }| |¡ | t¡ | t¡ d S r   )r
   r   r   r   r   r.   Úassert_any_callr0   r   r   r   Útest_manager_should_call_allF   s    ÿ

z,TestTestManager.test_manager_should_call_allc                 C   s8   dd„ }t  ttg¡}| |¡}|  t|ƒddg¡ d S )Nc                 _   s   | j S r   ©r'   ©ÚextÚargsÚkwdsr   r   r   ÚmappedO   s    z:TestTestManager.test_manager_return_values.<locals>.mappedr   r   )r
   r   r   r   r.   r   Úsorted)r   r:   r   Úresultsr   r   r   Útest_manager_return_valuesN   s    ÿ
z*TestTestManager.test_manager_return_valuesc                 C   s>   t  tg¡}ttdƒd}|j|ddddd}|  |g ¡ d S )Núhard coded error©Zside_effecté   é   ÚAÚB©ÚaÚb)r
   r   r   r   ÚRuntimeErrorr.   r   )r   r   r1   r<   r   r   r   Ú"test_manager_should_eat_exceptionsW   s    z2TestTestManager.test_manager_should_eat_exceptionsc                 C   s@   t jtgdd}|  d¡ ttdƒd}|j|dddd	d
 d S )NT)Zpropagate_map_exceptionszSkipping temporarilyr>   r?   r@   rA   rB   rC   rD   )r
   r   r   ZskipTestr   rG   r.   r0   r   r   r   Ú(test_manager_should_propagate_exceptions_   s    ÿ
z8TestTestManager.test_manager_should_propagate_exceptionsc                 C   s$   t tg}t |¡}|  ||j¡ d S r   )r   r   r   r   r   r   r   r   r   r   Ú1test_named_manager_should_use_supplied_extensionsg   s    
zATestTestManager.test_named_manager_should_use_supplied_extensionsc                 C   s   t  g ¡}|  |jd¡ d S r   ©r   r   r   r!   r"   r   r   r   Ú0test_named_manager_should_have_default_namespacel   s    
z@TestTestManager.test_named_manager_should_have_default_namespacec                 C   s$   d}t jg |d}|  ||j¡ d S r$   rK   r%   r   r   r   Ú0test_named_manager_should_use_supplied_namespacep   s    z@TestTestManager.test_named_manager_should_use_supplied_namespacec                 C   s*   t tg}t |¡}|  | ¡ ddg¡ d S )Nr   r   )r   r   r   r   r   r(   r   r   r   r   Ú(test_named_manager_should_populate_namesu   s    
z8TestTestManager.test_named_manager_should_populate_namesc                 C   s$   t tg}t |¡}|  ||j¡ d S r   )r   r   r   r   r   r   r   r   r   r   Ú0test_hook_manager_should_use_supplied_extensions{   s    
z@TestTestManager.test_hook_manager_should_use_supplied_extensionsc                 C   s$   t tg}t |¡}|t j s t‚d S r   )r   r   r   r   r'   ÚAssertionErrorr   r   r   r   Ú0test_hook_manager_should_be_first_extension_name€   s    
z@TestTestManager.test_hook_manager_should_be_first_extension_namec                 C   s   t  tg¡}|  |jd¡ d S r   ©r   r   r   r   r!   r"   r   r   r   Ú/test_hook_manager_should_have_default_namespace†   s    z?TestTestManager.test_hook_manager_should_have_default_namespacec                 C   s&   d}t jtg|d}|  ||j¡ d S r$   rR   r%   r   r   r   Ú/test_hook_manager_should_use_supplied_namespaceŠ   s
    ÿz?TestTestManager.test_hook_manager_should_use_supplied_namespacec                 C   sB   t dd d d ƒ}t dd d d ƒ}t ||g¡}|  ||g|d ¡ d S )NZcaptain)r   r   r   r   )r   Zhook1Zhook2r   r   r   r   Ú0test_hook_manager_should_return_named_extensions   s    z@TestTestManager.test_hook_manager_should_return_named_extensionsc                 C   s   t  t¡}|  tg|j¡ d S r   )r   r   Úa_driverr   r   r"   r   r   r   Ú1test_driver_manager_should_use_supplied_extension—   s    
zATestTestManager.test_driver_manager_should_use_supplied_extensionc                 C   s   t  t¡}|  |jd¡ d S r   ©r   r   rV   r   r!   r"   r   r   r   Ú1test_driver_manager_should_have_default_namespace›   s    
zATestTestManager.test_driver_manager_should_have_default_namespacec                 C   s$   d}t jt|d}|  ||j¡ d S r$   rX   r%   r   r   r   Ú1test_driver_manager_should_use_supplied_namespaceŸ   s    zATestTestManager.test_driver_manager_should_use_supplied_namespacec                 C   s    t  t¡}|  dg| ¡ ¡ d S )Nr   )r   r   rV   r   r(   r"   r   r   r   Ú$test_instance_should_use_driver_name¤   s    
z4TestTestManager.test_instance_should_use_driver_namec                 C   s:   dd„ }t  t¡}||ddd}|  |ddddif¡ d S )	Nc                 _   s   | j ||fS r   r5   r6   r   r   r   Úinvoke©   s    z2TestTestManager.test_instance_call.<locals>.invokerE   ÚC)rF   r   )rE   rF   )r   r   rV   r   )r   r\   r   Úresultr   r   r   Útest_instance_call¨   s    
z"TestTestManager.test_instance_callc                 C   s   t  t¡}|  tj|j¡ d S r   )r   r   rV   r   r   Ú
driver_objZdriverr"   r   r   r   Útest_instance_driver_property°   s    
z-TestTestManager.test_instance_driver_propertyc                 C   s$   t tg}t |¡}|  ||j¡ d S r   )r   r   r	   r   r   r   r   r   r   r   Ú4test_enabled_instance_should_use_supplied_extensionsµ   s    
zDTestTestManager.test_enabled_instance_should_use_supplied_extensionsc                 C   s$   t tg}t |¡}|  ||j¡ d S r   )r   r   r   r   r   r   r   r   r   r   Ú5test_dispatch_instance_should_use_supplied_extensions»   s    
zETestTestManager.test_dispatch_instance_should_use_supplied_extensionsc                 C   s`   t  ttg¡}tdd}d}ddi}|j|d f|ž|Ž |jtf|ž|Ž |jtf|ž|Ž d S )NF)Zreturn_value©rB   ÚbigÚCheese)r   r   r   r   r   r.   r3   )r   r   Zfilter_funcr8   Úkwr   r   r   Ú5test_dispatch_map_should_invoke_filter_for_extensionsÀ   s    ÿ
zETestTestManager.test_dispatch_map_should_invoke_filter_for_extensionsc                 C   s$   t tg}t |¡}|  ||j¡ d S r   )r   r   r   r   r   r   r   r   r   r   Ú:test_name_dispatch_instance_should_use_supplied_extensionsË   s    
zJTestTestManager.test_name_dispatch_instance_should_use_supplied_extensionsc                 C   s>   t tg}t |¡}|  t |jt j ¡ |  t|jtj ¡ d S r   )r   r   r   r   r   Zby_namer'   r   r   r   r   Ú;test_name_dispatch_instance_should_build_extension_name_mapÑ   s    
zKTestTestManager.test_name_dispatch_instance_should_build_extension_name_mapc                 C   sL   t  ttg¡}tƒ }d}ddi}|jdg|f|ž|Ž |jtf|ž|Ž d S )Nrd   ZBIGGERrf   r   )r   r   r   r   r   r.   r/   )r   r   r1   r8   rg   r   r   r   Ú;test_named_dispatch_map_should_invoke_filter_for_extensions×   s    ÿzKTestTestManager.test_named_dispatch_map_should_invoke_filter_for_extensionsN)#Ú__name__Ú
__module__Ú__qualname__r   r#   r&   r)   r,   r-   r2   r4   r=   rH   rI   rJ   rL   rM   rN   rO   rQ   rS   rT   rU   rW   rY   rZ   r[   r_   ra   rb   rc   rh   ri   rj   rk   r   r   r   r   r   %   s@   	r   )Zunittest.mockr   r   Zstevedore.dispatchr   r   Zstevedore.extensionr   Zstevedore.testsr   Z	stevedorer   r	   r
   r   r   r   r   Zmock_entry_pointZdriver_pluginr`   rV   ZTestCaser   r   r   r   r   Ú<module>   s"   
ÿ