Ñò
5	³Lc           @   s¢   d  Z  d d k Z d d k Z d d k l Z l Z e Z d e i f d „  ƒ  YZ	 d  e	 f d „  ƒ  YZ d e
 f d „  ƒ  YZ d	 „  Z d
 e
 f d „  ƒ  YZ d S(   t	   TestSuiteiÿÿÿÿN(   t   caset   utilt   BaseTestSuitec           B   sz   e  Z d  Z d d „ Z d „  Z d „  Z d „  Z d Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z d „  Z RS(   sN   A simple test suite that doesn't provide class or module shared fixtures.
    c         C   s   g  |  _  |  i | ƒ d  S(   N(   t   _testst   addTests(   t   selft   tests(    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   __init__   s    	c         C   s    d t  i |  i ƒ t |  ƒ f S(   Ns   <%s tests=%s>(   R   t   strclasst	   __class__t   list(   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   __repr__   s    c         C   s.   t  | |  i ƒ p t St |  ƒ t | ƒ j S(   N(   t
   isinstanceR
   t   NotImplementedR   (   R   t   other(    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   __eq__   s    c         C   s   |  | j S(   N(    (   R   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   __ne__   s    c         C   s   t  |  i ƒ S(   N(   t   iterR   (   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   __iter__   s    c         C   s+   d } x |  D] } | | i  ƒ  7} q W| S(   Ni    (   t   countTestCases(   R   t   casest   test(    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR   "   s
     c         C   sz   t  | d ƒ p t d t | ƒ f ƒ ‚ n t | t ƒ o) t | t i t f ƒ o t d ƒ ‚ n |  i	 i
 | ƒ d  S(   Nt   __call__s   %r is not callablesN   TestCases and TestSuites must be instantiated before passing them to addTest()(   t   hasattrt	   TypeErrort   reprR   t   typet
   issubclassR   t   TestCaseR    R   t   append(   R   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   addTest(   s    c         C   sB   t  | t ƒ o t d ƒ ‚ n x | D] } |  i | ƒ q' Wd  S(   Ns0   tests must be an iterable of tests, not a string(   R   t
   basestringR   R   (   R   R   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR   2   s
     c         C   s.   x' |  D] } | i  o Pn | | ƒ q W| S(   N(   t
   shouldStop(   R   t   resultR   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   run8   s     
c         O   s   |  i  | | Ž  S(   N(   R#   (   R   t   argst   kwds(    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR   ?   s    c         C   s   x |  D] } | i  ƒ  q Wd S(   s7   Run the tests without collecting errors in a TestResultN(   t   debug(   R   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR&   B   s     (    N(   t   __name__t
   __module__t   __doc__R   R   R   R   t   Nonet   __hash__R   R   R   R   R#   R   R&   (    (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR   
   s   						
			c           B   sb   e  Z d  Z d „  Z d „  Z e d „ Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z RS(
   s³  A test suite is a composite test consisting of a number of TestCases.

    For use, create an instance of TestSuite, then add test case instances.
    When all tests have been added, the suite can be passed to a test
    runner, such as TextTestRunner. It will run the individual test cases
    in the order in which they were added, aggregating the results. When
    subclassing, do not forget to call the base class constructor.
    c         C   s.   |  i  | ƒ |  i d  | ƒ |  i | ƒ | S(   N(   t   _wrapped_runt   _tearDownPreviousClassR*   t   _handleModuleTearDown(   R   R"   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR#   S   s    c         C   s:   t  ƒ  } |  i | t ƒ |  i d | ƒ |  i | ƒ d S(   s7   Run the tests without collecting errors in a TestResultN(   t   _DebugResultR,   t   TrueR-   R*   R.   (   R   R&   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR&   Y   s    	c         C   sä   xÝ |  D]Õ } | i  o Pn t | ƒ op |  i | | ƒ |  i | | ƒ |  i | | ƒ | i | _ t | i d t ƒ p t | d t ƒ o q q™ n t	 | d ƒ o | i
 | | ƒ q | p | | ƒ q | i ƒ  q Wd  S(   Nt   _classSetupFailedt   _moduleSetUpFailedR,   (   R!   t   _isnotsuiteR-   t   _handleModuleFixturet   _handleClassSetUpR
   t   _previousTestClasst   getattrt   FalseR   R,   R&   (   R   R"   R&   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR,   b   s"     
c   	      C   s  t  | d d  ƒ } | i } | | j o d  S| i o d  St  | d t ƒ o d  Sy t | _ Wn t j
 o n Xt  | d d  ƒ } | d  j	 os y | ƒ  Wq	t j
 oU } t | t	 ƒ o ‚  n t
 | _ t i | ƒ } d | } |  i | | | ƒ q	Xn d  S(   NR6   t   __unittest_skip__t
   setUpClasss   setUpClass (%s)(   R7   R*   R
   R2   R8   R1   R   t	   ExceptionR   R/   R0   R   R	   t   _addClassOrModuleLevelException(	   R   R   R"   t   previousClasst   currentClassR:   t   et	   classNamet	   errorName(    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR5   x   s.    	
	
c         C   s6   d  } t | d d  ƒ } | d  j	 o | i } n | S(   NR6   (   R*   R7   R(   (   R   R"   t   previousModuleR=   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   _get_previous_module•   s
    c   	      C   sò   |  i  | ƒ } | i i } | | j o d  S|  i | ƒ t | _ y t i | } Wn t j
 o d  SXt	 | d d  ƒ } | d  j	 od y | ƒ  Wqî t j
 oF } t | t ƒ o ‚  n t | _ d | } |  i | | | ƒ qî Xn d  S(   Nt   setUpModules   setUpModule (%s)(   RC   R
   R(   R.   R8   R2   t   syst   modulest   KeyErrorR7   R*   R;   R   R/   R0   R<   (	   R   R   R"   RB   t   currentModulet   moduleRD   R?   RA   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR4      s(    		
c         C   so   t  | ƒ } t | d d  ƒ } | d  j	 o* t | t i ƒ o | | t | ƒ ƒ n | i | t i	 ƒ  ƒ d  S(   Nt   addSkip(
   t   _ErrorHolderR7   R*   R   R   t   SkipTestt   strt   addErrorRE   t   exc_info(   R   R"   t	   exceptionRA   t   errorRJ   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR<   ¶   s
     c         C   sÖ   |  i  | ƒ } | d  j o d  S| i o d  Sy t i | } Wn t j
 o d  SXt | d d  ƒ } | d  j	 o[ y | ƒ  WqÒ t j
 o= } t | t	 ƒ o ‚  n d | } |  i
 | | | ƒ qÒ Xn d  S(   Nt   tearDownModules   tearDownModule (%s)(   RC   R*   R2   RE   RF   RG   R7   R;   R   R/   R<   (   R   R"   RB   RI   RR   R?   RA   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR.   ¾   s$    

c   	      C   s  t  | d d  ƒ } | i } | | j o d  St  | d t ƒ o d  St  | d t ƒ o d  St  | d t ƒ o d  St  | d d  ƒ } | d  j	 oj y | ƒ  Wqþ t j
 oL } t | t ƒ o ‚  n t i | ƒ } d | } |  i	 | | | ƒ qþ Xn d  S(   NR6   R1   R2   R9   t   tearDownClasss   tearDownClass (%s)(
   R7   R*   R
   R8   R;   R   R/   R   R	   R<   (	   R   R   R"   R=   R>   RS   R?   R@   RA   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR-   Ô   s(    	
(   R'   R(   R)   R#   R&   R8   R,   R5   RC   R4   R<   R.   R-   (    (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR    H   s   								RK   c           B   s\   e  Z d  Z d	 Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(
   s¾   
    Placeholder for a TestCase inside a result. As far as a TestResult
    is concerned, this looks exactly like a unit test. Used to insert
    arbitrary errors into a test suite run.
    c         C   s   | |  _  d  S(   N(   t   description(   R   RT   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR   ø   s    c         C   s   |  i  S(   N(   RT   (   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   idû   s    c         C   s   d  S(   N(   R*   (   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   shortDescriptionþ   s    c         C   s   d |  i  f S(   Ns   <ErrorHolder description=%r>(   RT   (   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR     s    c         C   s
   |  i  ƒ  S(   N(   RU   (   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   __str__  s    c         C   s   d  S(   N(    (   R   R"   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR#     s    c         C   s   |  i  | ƒ S(   N(   R#   (   R   R"   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR     s    c         C   s   d S(   Ni    (    (   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR     s    N(   R'   R(   R)   R*   t   failureExceptionR   RU   RV   R   RW   R#   R   R   (    (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyRK   ì   s   							c         C   s)   y t  |  ƒ Wn t j
 o t SXt S(   s?   A crude way to tell apart testcases and suites with duck-typing(   R   R   R0   R8   (   R   (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR3     s
    R/   c           B   s    e  Z d  Z d Z e Z e Z RS(   sC   Used by the TestSuite to hold previous class when running in debug.N(   R'   R(   R)   R*   R6   R8   R2   R!   (    (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyR/     s   (   R)   RE   t   unittestt   django.utils.unittestR   R   R0   t
   __unittestR    R   t   objectRK   R3   R/   (    (    (    sE   /usr/local/lib/python2.6/dist-packages/django/utils/unittest/suite.pyt   <module>   s   >¤&		