a
    =_                     @   s|   d Z ddlZddlmZ ddlmZ ddlmZ G dd deZdd	 Z	e
d
krxd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.

    N)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rxi }tjD ].}|jj}||v rL||  d7  < q&d||< q&dd | 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.9/site-packages/tables/tests/test_garbage.py
<listcomp>/   s   z*GarbageTestCase.test00.<locals>.<listcomp>zClass incidence:z, z&Possible leak: %d uncollected objects.)lengcZgarbager   verbose	__class____name__items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
   suite5   s    r   __main__)ZdefaultTest)r   r   Ztables.testsr   Ztables.tests.commonr   r   ZTestCaser   r   r   sysZ
parse_argvargvZprint_versionsmainr   r   r   r
   <module>   s   