
    Cad                     z    d 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
  G d d	e
j                        Zy)
zTests for stevedore.extension
    N)driver)	exception)	extension)test_extension)utilsc                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestCallbackc                     t        j                  dd      }t        |j                               }| j	                  |dg       y )Nstevedore.test.extensiont1)r   DriverManagersortednamesassertEqual)selfemr   s      =/usr/lib/python3/dist-packages/stevedore/tests/test_driver.pytest_detect_pluginsz TestCallback.test_detect_plugins   s7    !!"<dCrxxz"'    c                 z    d }t        j                  dd      } ||dd      }| j                  |ddddif       y )	Nc                      | j                   ||fS )N)name)extargskwdss      r   invokez&TestCallback.test_call.<locals>.invoke    s    HHdD))r   r   r   aC)b)r   r   )r   r   r   )r   r   r   results       r   	test_callzTestCallback.test_call   sC    	*!!"<dCFC3'$c
!;<r   c                     t        j                  ddd      }|j                   }| j                  |t        j                         y )Nr   r   Finvoke_on_load)r   r   assertIsr   FauxExtensionr   r   ds      r   (test_driver_property_not_invoked_on_loadz5TestCallback.test_driver_property_not_invoked_on_load&   s7    !!"<d168IIa556r   c                     t        j                  ddd      }|j                   }| j                  |t        j                         y )Nr   r   Tr#   )r   r   assertIsInstancer   r&   r'   s      r   $test_driver_property_invoked_on_loadz1TestCallback.test_driver_property_invoked_on_load,   s9    !!"<d157IIa!=!=>r   c                     	 t        j                  dd       y # t        j                  $ r%}| j	                  dt        |             Y d }~y d }~ww xY w)Nzstevedore.test.extension.noner   z/No 'stevedore.test.extension.none' driver found)r   r   r   	NoMatchesassertInstr)r   errs     r   test_no_driverszTestCallback.test_no_drivers2   sI    	$  !@$G"" 	$MMKc($ $	$s    AAAc                 t    	 t        j                  dd       | j                  dd       y # t        $ r Y y w xY w)Nr   e2FzNo error raised)r   r   r   ImportError)r   s    r   test_bad_driverzTestCallback.test_bad_driver9   s?    	7  !;TB U$56  		s   + 	77c           	         t        j                  dt        j                  ddd      dd       t        j                  dt        j                  ddd      dd       g}	 t        j
                  j                  |d         }|j                  |       | j                  d       y # t        j                  $ r%}| j                  dt        |             Y d }~y d }~ww xY w)Nbackendzpkg1:driverzpkg backendzpkg2:driverr   zShould have had an errorMultiple)r   	Extensionimportlib_metadata
EntryPointr   r   make_test_instance_init_pluginsfailr   MultipleMatchesr/   r0   )r   
extensionsdmr1   s       r   test_multiple_driversz"TestCallback.test_multiple_driversA   s     "--}i9 "--}i9

 	2%%88AGBZ( II01 (( 	0MM*c#h//	0s   3B! !C4CCN)
__name__
__module____qualname__r   r!   r)   r,   r2   r6   rC    r   r   r	   r	      s%    (
=7?$72r   r	   )__doc__importlib.metadatametadatar;   	stevedorer   r   r   stevedore.testsr   r   TestCaser	   rG   r   r   <module>rN      s0    0    * !B25>> B2r   