
    CadY%                     2   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      Z edeej&                  ej(                        Z G d de	j,                        Zy)    )Mock)sentinel)DispatchExtensionManager)NameDispatchExtensionManager)	Extension)utils)DriverManager)EnabledExtensionManager)ExtensionManager)HookManager)NamedExtensionManagertest_extensionNanother_oneztest.extensionobj)module_nameattrstest_driverc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"y!)"TestTestManagerc                 ~    t         t        g}t        j                  |      }| j	                  ||j
                         y N)r   test_extension2r   make_test_instanceassertEqual
extensionsselfr   ems      C/usr/lib/python3/dist-packages/stevedore/tests/test_test_manager.py,test_instance_should_use_supplied_extensionsz<TestTestManager.test_instance_should_use_supplied_extensions&   s0    $o6
00<R]]3    c                 f    t        j                  g       }| j                  |j                  d       y NTESTINGr   r   r   	namespacer   r   s     r   +test_instance_should_have_default_namespacez;TestTestManager.test_instance_should_have_default_namespace+   s&    004y1r!   c                 n    d}t        j                  g |      }| j                  ||j                         y Nztesting.1.2.3)r&   r%   r   r&   r   s      r   +test_instance_should_use_supplied_namespacez;TestTestManager.test_instance_should_use_supplied_namespace/   s-    #	00yIBLL1r!   c                     t        j                  t        g      }| j                  t        j                  |j                                y r   )r   r   r   assertInnamenamesr'   s     r   $test_extension_name_should_be_listedz4TestTestManager.test_extension_name_should_be_listed4   s/    00.1ABn))288:6r!   c                     t        j                  t        g      }| j                  t        t	        t        |                   y r   )r   r   r   r   nextiterr'   s     r   $test_iterator_should_yield_extensionz4TestTestManager.test_iterator_should_yield_extension8   s-    00.1ABd2h8r!   c                     t        j                  t        g      }| j                  t        |t        j                            y r   )r   r   r   r   r/   r'   s     r   %test_manager_should_allow_name_accessz5TestTestManager.test_manager_should_allow_name_access<   s0    00.1ABN,?,?)@Ar!   c                     t        j                  t        g      }t               }|j	                  |       |j                  t               y r   )r   r   r   r   mapassert_called_once_withr   r   funcs      r   test_manager_should_callz(TestTestManager.test_manager_should_call@   s5    00.1ABv
t$$^4r!   c                     t        j                  t        t        g      }t	               }|j                  |       |j                  t               |j                  t               y r   )r   r   r   r   r   r9   assert_any_callr;   s      r   test_manager_should_call_allz,TestTestManager.test_manager_should_call_allF   sL    00/2@2B Cv
t_-^,r!   c                     d }t        j                  t        t        g      }|j	                  |      }| j                  t        |      ddg       y )Nc                     | j                   S r   r/   extargskwdss      r   mappedz:TestTestManager.test_manager_return_values.<locals>.mappedO   s    88Or!   r   r   )r   r   r   r   r9   r   sorted)r   rH   r   resultss       r   test_manager_return_valuesz*TestTestManager.test_manager_return_valuesN   sL    	 00/2@2B C&&.=:J*KLr!   c                     t        j                  t        g      }t        t	        d            }|j                  |dddd      }| j                  |g        y )Nhard coded errorside_effect      ABab)r   r   r   r   RuntimeErrorr9   r   )r   r   r<   rJ   s       r   "test_manager_should_eat_exceptionsz2TestTestManager.test_manager_should_eat_exceptionsW   sM    00.1AB-? @A&&q!sc&2"%r!   c                     t        j                  t        gd      }| j                  d       t	        t        d            }|j                  |dddd	
       y )NT)propagate_map_exceptionszSkipping temporarilyrM   rN   rP   rQ   rR   rS   rT   )r   r   r   skipTestr   rW   r9   r;   s      r   (test_manager_should_propagate_exceptionsz8TestTestManager.test_manager_should_propagate_exceptions_   sN    00.1AJNP,--? @A
tQSC(r!   c                 ~    t         t        g}t        j                  |      }| j	                  ||j
                         y r   )r   r   r   r   r   r   r   s      r   1test_named_manager_should_use_supplied_extensionszATestTestManager.test_named_manager_should_use_supplied_extensionsg   s0    $o6
"55jAR]]3r!   c                 f    t        j                  g       }| j                  |j                  d       y r#   r   r   r   r&   r'   s     r   0test_named_manager_should_have_default_namespacez@TestTestManager.test_named_manager_should_have_default_namespacel   s&    "55b9y1r!   c                 n    d}t        j                  g |      }| j                  ||j                         y r*   r`   r+   s      r   0test_named_manager_should_use_supplied_namespacez@TestTestManager.test_named_manager_should_use_supplied_namespacep   s-    #	"55bINBLL1r!   c                     t         t        g}t        j                  |      }| j	                  |j                         ddg       y )Nr   r   )r   r   r   r   r   r0   r   s      r   (test_named_manager_should_populate_namesz8TestTestManager.test_named_manager_should_populate_namesu   s8    $o6
"55jA&6%FGr!   c                 ~    t         t        g}t        j                  |      }| j	                  ||j
                         y r   )r   r   r   r   r   r   r   s      r   0test_hook_manager_should_use_supplied_extensionsz@TestTestManager.test_hook_manager_should_use_supplied_extensions{   s0    $o6
++J7R]]3r!   c                 p    t         t        g}t        j                  |      }|t         j                     sJ y r   )r   r   r   r   r/   r   s      r   0test_hook_manager_should_be_first_extension_namez@TestTestManager.test_hook_manager_should_be_first_extension_name   s0    $o6
++J7.%%&'&r!   c                 p    t        j                  t        g      }| j                  |j                  d       y r#   r   r   r   r   r&   r'   s     r   /test_hook_manager_should_have_default_namespacez?TestTestManager.test_hook_manager_should_have_default_namespace   s)    ++^,<=y1r!   c                 x    d}t        j                  t        g|      }| j                  ||j                         y r*   rk   r+   s      r   /test_hook_manager_should_use_supplied_namespacez?TestTestManager.test_hook_manager_should_use_supplied_namespace   s4    #	++^,<6?ABLL1r!   c                     t        dd d d       }t        dd d d       }t        j                  ||g      }| j                  ||g|d          y )Ncaptain)r   r   r   r   )r   hook1hook2r   s       r   0test_hook_manager_should_return_named_extensionsz@TestTestManager.test_hook_manager_should_return_named_extensions   sN    )T46)T46++UEN;%I7r!   c                 x    t        j                  t              }| j                  t        g|j                         y r   )r	   r   a_driverr   r   r'   s     r   1test_driver_manager_should_use_supplied_extensionzATestTestManager.test_driver_manager_should_use_supplied_extension   s(    --h7(R]]3r!   c                 n    t        j                  t              }| j                  |j                  d       y r#   r	   r   ru   r   r&   r'   s     r   1test_driver_manager_should_have_default_namespacezATestTestManager.test_driver_manager_should_have_default_namespace   s&    --h7y1r!   c                 v    d}t        j                  t        |      }| j                  ||j                         y r*   rx   r+   s      r   1test_driver_manager_should_use_supplied_namespacezATestTestManager.test_driver_manager_should_use_supplied_namespace   s-    #	--h)LBLL1r!   c                 x    t        j                  t              }| j                  dg|j	                                y )Nr   )r	   r   ru   r   r0   r'   s     r   $test_instance_should_use_driver_namez4TestTestManager.test_instance_should_use_driver_name   s*    --h7-"((*5r!   c                     d }t        j                  t              } ||dd      }| j                  |ddddif       y )Nc                      | j                   ||fS r   rC   rD   s      r   invokez2TestTestManager.test_instance_call.<locals>.invoke   s    88T4''r!   rU   C)rV   r   )rU   rV   )r	   r   ru   r   )r   r   r   results       r   test_instance_callz"TestTestManager.test_instance_call   sB    	( --h7FC3'-#s!DEr!   c                     t        j                  t              }| j                  t        j
                  |j                         y r   )r	   r   ru   r   r   
driver_objdriverr'   s     r   test_instance_driver_propertyz-TestTestManager.test_instance_driver_property   s,    --h7,,bii8r!   c                 ~    t         t        g}t        j                  |      }| j	                  ||j
                         y r   )r   r   r
   r   r   r   r   s      r   4test_enabled_instance_should_use_supplied_extensionszDTestTestManager.test_enabled_instance_should_use_supplied_extensions   s0    $o6
$77
CR]]3r!   c                 ~    t         t        g}t        j                  |      }| j	                  ||j
                         y r   )r   r   r   r   r   r   r   s      r   5test_dispatch_instance_should_use_supplied_extensionszETestTestManager.test_dispatch_instance_should_use_supplied_extensions   s0    $o6
%88DR]]3r!   c                     t        j                  t        t        g      }t	        d      }d}ddi} |j
                  |d g|i |  |j                  t        g|i |  |j                  t        g|i | y )NF)return_valuerR   bigCheese)r   r   r   r   r   r9   r?   )r   r   filter_funcrF   kws        r   5test_dispatch_map_should_invoke_filter_for_extensionszETestTestManager.test_dispatch_map_should_invoke_filter_for_extensions   s    %88.:I:K L.X{D.4.2.###N@T@R@###OAdAbAr!   c                 ~    t         t        g}t        j                  |      }| j	                  ||j
                         y r   )r   r   r   r   r   r   r   s      r   :test_name_dispatch_instance_should_use_supplied_extensionszJTestTestManager.test_name_dispatch_instance_should_use_supplied_extensions   s0    $o6
)<<ZHR]]3r!   c                 
   t         t        g}t        j                  |      }| j	                  t         |j
                  t         j                            | j	                  t        |j
                  t        j                            y r   )r   r   r   r   r   by_namer/   r   s      r   ;test_name_dispatch_instance_should_build_extension_name_mapzKTestTestManager.test_name_dispatch_instance_should_build_extension_name_map   sZ    $o6
)<<ZHN4G4G)HI"**_5I5I*JKr!   c                     t        j                  t        t        g      }t	               }d}ddi} |j
                  dg|g|i |  |j                  t        g|i | y )Nr   BIGGERr   r   )r   r   r   r   r   r9   r:   )r   r   r<   rF   r   s        r   ;test_named_dispatch_map_should_invoke_filter_for_extensionszKTestTestManager.test_named_dispatch_map_should_invoke_filter_for_extensions   sl    )<<n>M>O Pv! !45$5"5$$$^AdAbAr!   N)#__name__
__module____qualname__r    r(   r,   r1   r5   r7   r=   r@   rK   rX   r\   r^   ra   rc   re   rg   ri   rl   rn   rs   rv   ry   r{   r}   r   r   r   r   r   r   r   r    r!   r   r   r   %   s    4
22
79B5-M&)4
22
H4
(228422
6F9
44
B4LBr!   r   )unittest.mockr   r   stevedore.dispatchr   r   stevedore.extensionr   stevedore.testsr   	stevedorer	   r
   r   r   r   r   r   mock_entry_pointdriver_pluginr   ru   TestCaser   r   r!   r   <module>r      s     " 7 ; ) ! # - & ! + +T4>M4t<$4UGD ]$4h6L6L((*
yBenn yBr!   