ó
jˆú\c           @@ sÖ   d  Z  d d l m Z d d l m Z d d l Z d d l m Z d d l m Z d d l m	 Z
 d d l Z d e
 f d	 „  ƒ  YZ d
 „  Z e d k rÒ d d l Z e j e j ƒ e j ƒ  e j d d ƒ n  d S(   sÞ   Test module for detecting uncollectable garbage in PyTables.

This test module *must* be loaded in the last place.  It just checks for
the existence of uncollectable garbage in ``gc.garbage`` after running
all the tests.

i    (   t   print_function(   t   absolute_importN(   t   common(   t   unittest(   t   PyTablesTestCaset   GarbageTestCasec           B@ s   e  Z d  Z d „  Z RS(   s   Test for uncollectable garbage.c         C@ s×   t  t j ƒ } | d k r d St j rÂ i  } xF t j D]; } | j j } | | k ri | | c d 7<q8 d | | <q8 Wg  t j | ƒ D] \ } } d | | f ^ q‡ } t	 d d j
 | ƒ ƒ n  |  j d | ƒ d S(   s#   Checking for uncollectable garbage.i    Ni   s
   ``%s``: %ds   Class incidence:s   , s&   Possible leak: %d uncollected objects.(   t   lent   gct   garbageR   t   verboset	   __class__t   __name__t   sixt	   iteritemst   printt   joint   fail(   t   selft
   garbageLent
   classCountt   objt   objClasst   clst   cntt	   incidence(    (    s8   lib/python2.7/site-packages/tables/tests/test_garbage.pyt   test00"   s    	/(   R   t
   __module__t   __doc__R   (    (    (    s8   lib/python2.7/site-packages/tables/tests/test_garbage.pyR      s   c          C@ s&   t  j ƒ  }  |  j t  j t ƒ ƒ |  S(   sC   Return a test suite consisting of all the test cases in the module.(   R   t	   TestSuitet   addTestt	   makeSuiteR   (   t   theSuite(    (    s8   lib/python2.7/site-packages/tables/tests/test_garbage.pyt   suite8   s    t   __main__t   defaultTestR    (   R   t
   __future__R    R   R   t   tables.testsR   t   tables.tests.commonR   R   t   TestCaseR   R   R    R   t   syst
   parse_argvt   argvt   print_versionst   main(    (    (    s8   lib/python2.7/site-packages/tables/tests/test_garbage.pyt   <module>   s   	
