
?T                 @   s   d  d l  Z d  d l j j Z d  d l m Z d  d l m	 Z	 m
 Z
 Gd d   d e	  Z Gd d   d e	  Z Gd d	   d	 e	  Z Gd
 d   d e	  Z Gd d   d e  Z d d   Z d d   Z d d   Z d S)    N)handler)	ComponentManagerc               @   s   e  Z d  Z d d   Z d S)Appc             O   s   d  S)N )selfeventargskwargsr   r   ?/home/prologic/work/circuits/tests/core/test_component_setup.pytest   s    zApp.testN)__name__
__module____qualname__r   r   r   r   r   r      s   r   c               @   s   e  Z d  Z d S)AN)r   r   r   r   r   r   r   r      s   r   c               @   s4   e  Z d  Z d Z e d d d d d    Z d S)BFprepare_unregisterchannel*c             C   s   | j  |   r d |  _ n  d  S)NT)
in_subtreeinformed)r   r   cr   r   r   _on_prepare_unregister   s    zB._on_prepare_unregisterN)r   r   r   r   r   r   r   r   r   r   r      s   r   c               @   s   e  Z d  Z d Z d S)BasebaseN)r   r   r   r   r   r   r   r   r   #   s   r   c               @   s   e  Z d  Z d Z d S)Cr   N)r   r   r   r   r   r   r   r   r   (   s   r   c              C   s  t    }  t   } | j |   | j } | j } | j } d } t   } | | |  } | | k } | rt j d f | f d f | | f  i	 t j	 |  d 6t j	 |  d 6t j	 |  d 6d t
 j   k p t j |  r t j	 |  n d d 6d t
 j   k pt j |  r)t j	 |  n d d	 6d
 t
 j   k pNt j t  r`t j	 t  n d
 d 6t j	 |  d 6t j	 |  d 6t j	 |  d 6}	 d d i |	 d 6}
 t t j |
    n  t } } } } } } } | j   x |  r|  j   qW|  j } | } | rd d i t j	 |  d 6d t
 j   k pVt j |   rht j	 |   n d d 6} t t j |    n  t } } d  S)Nr   inz%(py2)s
{%(py2)s = %(py0)s.test
} in %(py15)s
{%(py15)s = %(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py4)s._handlers
}.get
}(%(py10)s, %(py13)s
{%(py13)s = %(py11)s()
})
}Zpy15py2py13apppy0py4setpy11py6py8py10 zassert %(py17)sZpy17z1assert not %(py2)s
{%(py2)s = %(py0)s._handlers
}m)r   r   registerr   	_handlersgetr"   
@pytest_ar_call_reprcompare	_saferepr@py_builtinslocals_should_repr_global_nameAssertionError_format_explanationNone
unregisterflush)r(   r   @py_assert1@py_assert5@py_assert7@py_assert9Z@py_assert12Z@py_assert14@py_assert3Z@py_format16Z@py_format18@py_format4r   r   r   
test_basic-   s2    			 	 	  	     1   
		   U  r=   c              C   s  t    }  t   } t   } | j |   | j |  | |  k } | st j d | f d | |  f  i d t j   k s t j |   r t j	 |   n d d 6d t j   k s t j |  r t j	 |  n d d 6} d i | d	 6} t
 t j |    n  t } | j } | |  k } | st j d | f d | |  f  i t j	 |  d 6d t j   k svt j |  rt j	 |  n d d 6d t j   k st j |   rt j	 |   n d d	 6} d i | d 6} t
 t j |    n  t } } | j } | |  k } | st j d | f d | |  f  i t j	 |  d 6d t j   k sgt j |  rvt j	 |  n d d 6d t j   k st j |   rt j	 |   n d d	 6} d i | d 6} t
 t j |    n  t } } | | k } | st j d | f d | | f  i d t j   k s?t j |  rNt j	 |  n d d 6d t j   k svt j |  rt j	 |  n d d 6} d i | d	 6} t
 t j |    n  t } | j } | |  k } | st j d | f d  | |  f  i t j	 |  d 6d t j   k s,t j |  r;t j	 |  n d d 6d t j   k sct j |   rrt j	 |   n d d	 6} d! i | d 6} t
 t j |    n  t } } | j } | | k } | st j d" | f d# | | f  i t j	 |  d 6d t j   k st j |  r,t j	 |  n d d 6d t j   k sTt j |  rct j	 |  n d d	 6} d$ i | d 6} t
 t j |    n  t } } | j   x |  r|  j   qW| j } | s>d d i t j	 |  d 6d t j   k st j |  rt j	 |  n d d 6} t
 t j |    n  t } | |  k } | st j d% | f d& | |  f  i d t j   k st j |   rt j	 |   n d d 6d t j   k st j |  rt j	 |  n d d 6} d' i | d	 6} t
 t j |    n  t } | j } | | k } | st j d( | f d) | | f  i t j	 |  d 6d t j   k st j |  rt j	 |  n d d 6d t j   k st j |  rt j	 |  n d d	 6} d* i | d 6} t
 t j |    n  t } } | j } | | k } | st j d+ | f d, | | f  i t j	 |  d 6d t j   k svt j |  rt j	 |  n d d 6d t j   k st j |  rt j	 |  n d d	 6} d- i | d 6} t
 t j |    n  t } } | | k } | s	t j d. | f d/ | | f  i d t j   k sN	t j |  r]	t j	 |  n d d 6d t j   k s	t j |  r	t j	 |  n d d 6} d0 i | d	 6} t
 t j |    n  t } | j } | | k } | s
t j d1 | f d2 | | f  i t j	 |  d 6d t j   k s;
t j |  rJ
t j	 |  n d d 6d t j   k sr
t j |  r
t j	 |  n d d	 6} d3 i | d 6} t
 t j |    n  t } } | j } | | k } | st j d4 | f d5 | | f  i t j	 |  d 6d t j   k s,t j |  r;t j	 |  n d d 6d t j   k sct j |  rrt j	 |  n d d	 6} d6 i | d 6} t
 t j |    n  t } } d  S)7Nr   %(py0)s in %(py2)sr(   r   ar    r'   assert %(py4)sr!   ==,%(py2)s
{%(py2)s = %(py0)s.root
} == %(py4)sassert %(py6)sr$   .%(py2)s
{%(py2)s = %(py0)s.parent
} == %(py4)sbz,assert %(py2)s
{%(py2)s = %(py0)s.informed
}not in%(py0)s not in %(py2)s)r   )r>   r@   )rA   )rB   rC   )rA   )rD   rC   )r   )r>   r@   )rA   )rB   rC   )rA   )rD   rC   )rF   )rG   r@   )rA   )rB   rC   )rA   )rD   rC   )r   )r>   r@   )rA   )rB   rC   )rA   )rD   rC   )r   r   r   r)   r,   r-   r/   r0   r1   r.   r2   r3   r4   rootparentr5   r6   r   )r(   r?   rE   r7   @py_format3@py_format5r;   @py_format7r   r   r   test_complex<   s    			     	      
	      
     	      
	      

		  U       	      
	      
     	      
	      rM   c              C   s  t    }  |  j } d } | | k } | s t j d | f d | | f  i t j |  d 6t j |  d 6d t j   k s t j |   r t j |   n d d 6} d i | d	 6} t t j	 |    n  t
 } } } t   } | j } d
 } | | k } | st j d | f d | | f  i t j |  d 6t j |  d 6d
 t j   k sit j |  rxt j |  n d
 d 6} d i | d	 6} t t j	 |    n  t
 } } } d  S)Nr   rA   /%(py2)s
{%(py2)s = %(py0)s.channel
} == %(py5)spy5r   r    r'   assert %(py7)spy7r   )rA   )rN   rP   )rA   )rN   rP   )r   r   r,   r-   r.   r/   r0   r1   r2   r3   r4   r   )r   r7   @py_assert4r;   @py_format6@py_format8r   r   r   r   $test_subclassing_with_custom_channelY   s$    		    |   		    |   rU   )builtinsr/   _pytest.assertion.rewrite	assertionrewriter,   Zcircuits.core.handlersr   circuitsr   r   r   r   r   r   r   r=   rM   rU   r   r   r   r   <module>   s     
