ó
[³XMc           @   s·   d  Z  d d l m Z d d l m Z d d d „  ƒ  YZ d e f d „  ƒ  YZ e j j ƒ  Z	 e j j ƒ  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d e j f d „  ƒ  YZ e g Z d S(   s%   
Test cases for twisted.hook module.
iÿÿÿÿ(   t   hook(   t   unittestt	   BaseClassc           B   s    e  Z d  Z d „  Z d „  Z RS(   s)   
    dummy class to help in testing.
    c         C   s   d |  _  d |  _ d |  _ d S(   s#   
        dummy initializer
        i    N(   t   calledBasePret   calledBasePostt
   calledBase(   t   self(    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyt   __init__   s    		c         C   s8   | d k s t  ‚ | d k s$ t  ‚ |  j d |  _ d S(   s   
        dummy method
        i   i   N(   t   AssertionErrorR   (   R   t   at   b(    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyt   func   s    (   t   __name__t
   __module__t   __doc__R   R   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyR      s   	t   SubClassc           B   s    e  Z d  Z d „  Z d „  Z RS(   s   
    another dummy class
    c         C   s,   t  j |  ƒ d |  _ d |  _ d |  _ d S(   s+   
        another dummy initializer
        i    N(   R   R   t   calledSubPret   calledSubPostt	   calledSub(   R   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyR   &   s    		c         C   sK   | d k s t  ‚ | d k s$ t  ‚ t j |  | | ƒ |  j d |  _ d S(   s(   
        another dummy function
        i   i   N(   R   R   R   R   (   R   R	   R
   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyR   /   s    (   R   R   R   R   R   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyR   "   s   		c         C   s   |  j  d |  _  d S(   s'   
    a pre-hook for the base class
    i   N(   R   (   t   baseR	   R
   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyt   basePre;   s    c         C   s   |  j  d |  _  d S(   s(   
    a post-hook for the base class
    i   N(   R   (   R   R	   R
   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyt   basePostA   s    c         C   s   |  j  d |  _  d S(   s%   
    a pre-hook for the subclass
    i   N(   R   (   t   subR	   R
   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyt   subPreG   s    c         C   s   |  j  d |  _  d S(   s&   
    a post-hook for the subclass
    i   N(   R   (   R   R	   R
   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyt   subPostM   s    t   HookTestCasec           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s1   
    test case to make sure hooks are called
    c         C   s>   t  j j ƒ  t  j j t ƒ t j j ƒ  t j j t ƒ d S(   s0   Make sure we have clean versions of our classes.N(   R   t   __dict__t   cleart   updatet   _clean_BaseClassR   t   _clean_SubClass(   R   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyt   setUpW   s    c         C   s†  t  ƒ  } |  j | j d ƒ |  j | j d ƒ | j d d ƒ |  j | j d ƒ |  j | j d ƒ t j t  d t ƒ | j d d d ƒ|  j | j d ƒ |  j | j d ƒ t j t  d t	 ƒ | j d d d ƒ|  j | j
 d ƒ |  j | j d ƒ |  j | j d ƒ t j t  d t ƒ t j t  d t	 ƒ | j d d d ƒ|  j | j
 d ƒ |  j | j d ƒ |  j | j d ƒ d S(	   s@   make sure that the base class's hook is called reliably
        i    i   i   R   R
   i   i   N(   R   t   assertEqualsR   R   R   R    t   addPreR   t   addPostR   R   t	   removePret
   removePost(   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyt   testBaseHook^   s*    	c         C   sä  t  ƒ  } |  j | j d ƒ |  j | j d ƒ | j d d d ƒ|  j | j d ƒ |  j | j d ƒ t j t  d t ƒ |  j | j d ƒ |  j | j d ƒ |  j | j d ƒ |  j | j	 d ƒ | j d d d ƒ|  j | j d ƒ |  j | j d ƒ |  j | j d ƒ |  j | j	 d ƒ t j t
 d t ƒ t
 j | d d d ƒ|  j | j d ƒ |  j | j	 d t | j	 ƒ ƒ | j d d d ƒ|  j | j	 d ƒ |  j | j d ƒ |  j | j d ƒ |  j | j d ƒ d S(	   sF   test interactions between base-class hooks and subclass hooks
        i    i   R
   i   R   i   i   N(   R   R    R   R   R   R    R!   R   R   R   R   R   t   str(   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyt   testSubHookw   s2    	(   R   R   R   R   R%   R'   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyR   S   s   		N(    (   R   t   twisted.pythonR    t   twisted.trialR   R   R   R   t   copyR   R   R   R   R   R   t   TestCaseR   t	   testCases(    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_hook.pyt   <module>   s   				C