ó
H`¾Tc           @   s¤   d  d l  Z  d  d l Z d  d l Z d d l m Z d  d l Z d „  Z d „  Z d „  Z d „  Z	 d a d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿNi   (   t   plugin_basec            s9   |  j  d ƒ ‰  ‡  f d †  } t j | ƒ t j ƒ  d  S(   Nt
   sqlalchemyc            sX   | j  d d  ƒ ‰  ˆ  rD d t j f ‡  f d †  ƒ  Y} | | d <n  ˆ j |  |  d  S(   Nt   callbackt   CallableActionc              s   e  Z d ‡  f d  † Z RS(   c            s   ˆ  | | | ƒ d  S(   N(    (   t   selft   parsert	   namespacet   valuest   option_string(   t	   callback_(    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyt   __call__   s    N(   t   __name__t
   __module__t   NoneR
   (    (   R	   (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyR      s   t   action(   t   popR   t   argparset   Actiont	   addoption(   t   namet   kwR   (   t   group(   R	   sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyt   make_option   s
    (   t   getgroupR    t   setup_optionst   read_config(   R   R   (    (   R   sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyt   pytest_addoption   s    c         C   s@   t  j |  j ƒ t  j t t |  j d t ƒ ƒ ƒ t  j ƒ  d  S(   Nt
   cov_source(   R    t	   pre_begint   optiont   set_coverage_flagt   boolt   getattrt   Falset
   post_begin(   t   config(    (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyt   pytest_configure   s    c         C   s8  t  j t ƒ } t d „  | Dƒ ƒ } x• | D] } x„ t j | j | j j ƒ D]g } | | j k	 rN | | j } xB t	 j
 | j d | j j ƒj ƒ  D] } | j | j ƒ  ƒ q• WqN qN Wq, Wg  }	 xX | D]P }
 |
 j j | k r|	 j | |
 j j ƒ g  | |
 j j (qÊ |	 j |
 ƒ qÊ Wt |	 d d „  ƒ| (d  S(   Nc         s   s   |  ] } | j  Vq d  S(   N(   t   parent(   t   .0t   item(    (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pys	   <genexpr>/   s    R%   t   keyc         S   s%   |  j  j  j  j |  j  j  j |  j f S(   N(   R%   R   (   R'   (    (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyt   <lambda>E   s    (   t   collectionst   defaultdictt   listt   setR    t   generate_sub_testst   clsR%   t   modulet   pytestt   ClassR   t   collectt   extendt   appendt   sorted(   t   sessionR#   t   itemst   rebuilt_itemst   test_classest
   test_classt   sub_clst   list_t   instt   newitemsR'   (    (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyt   pytest_collection_modifyitems#   s$    			"c         C   s|   t  j | ƒ r1 t j | ƒ r1 t j | d |  ƒSt  j | ƒ rt | j d ƒ rt t |  t j	 ƒ rt t j
 | d |  ƒSg  Sd  S(   NR%   t   test_(   t   inspectt   isclassR    t
   want_classR1   R2   t
   isfunctiont
   startswitht
   isinstancet   Instancet   Function(   t	   collectorR   t   obj(    (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyt   pytest_pycollect_makeitemL   s    c            sq   t  ˆ  t j ƒ s d  Sˆ  j j t k	 rc t ˆ  j j ƒ ˆ  j j a ˆ  j j j ‡  f d †  ƒ n  t ˆ  ƒ d  S(   Nc              s   t  ˆ  j j ƒ S(   N(   t   class_teardownR%   (    (   R'   (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyR)   m   s    (   RG   R1   RI   R%   t   _current_classt   class_setupt   addfinalizert
   test_setup(   R'   (    (   R'   sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyt   pytest_runtest_setupZ   s    c         C   s   t  |  ƒ d  S(   N(   t   test_teardown(   R'   (    (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyt   pytest_runtest_teardownr   s    c         C   s,   t  j |  |  j j j |  j j |  j ƒ d  S(   N(   R    t   before_testR%   R0   R   R/   R   (   R'   (    (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyRQ   z   s    c         C   s   t  j |  ƒ d  S(   N(   R    t
   after_test(   R'   (    (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyRS      s    c         C   s   t  j |  j ƒ d  S(   N(   R    t   start_test_classR/   (   R'   (    (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyRO   ƒ   s    c         C   s   t  j |  j ƒ d  S(   N(   R    t   stop_test_classR/   (   R'   (    (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyRM   ‡   s    (   R1   R   RB   t    R    R*   R   R$   R@   RL   R   RN   RR   RT   RQ   RS   RO   RM   (    (    (    sl   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/plugin/pytestplugin.pyt   <module>   s   				)						