B
    i\                 @   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G dd	 d	e
Zd
d ZedkrddlZeej e  ejdd dS )zTest 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.

    )print_function)absolute_importN)common)unittest)PyTablesTestCasec               @   s   e Zd ZdZdd ZdS )GarbageTestCasezTest for uncollectable garbage.c             C   s   t tj}|dkrdS tjr~i }x8tjD ].}|jj}||krN||  d7  < q(d||< q(W dd t|D }t	dd
| | d|  dS )	z#Checking for uncollectable garbage.r   N   c             S   s   g | ]\}}d ||f qS )z
``%s``: %d ).0clsZcntr	   r	   8lib/python3.7/site-packages/tables/tests/test_garbage.py
<listcomp>2   s   z*GarbageTestCase.test00.<locals>.<listcomp>zClass incidence:z, z&Possible leak: %d uncollected objects.)lengcZgarbager   verbose	__class____name__sixZ	iteritemsprintjoinZfail)selfZ
garbageLenZ
classCountobjZobjClassZ	incidencer	   r	   r   test00"   s    
zGarbageTestCase.test00N)r   
__module____qualname____doc__r   r	   r	   r	   r   r      s   r   c              C   s   t  } | t t | S )zCReturn a test suite consisting of all the test cases in the module.)r   Z	TestSuiteZaddTestZ	makeSuiter   )ZtheSuiter	   r	   r   suite8   s    r   __main__)ZdefaultTest)r   Z
__future__r   r   r   Ztables.testsr   Ztables.tests.commonr   r   ZTestCaser   r   r   r   sysZ
parse_argvargvZprint_versionsmainr	   r	   r	   r   <module>   s   