o
    g                     @   sz   d dl Z d dlmZ d dlmZ d dlZd dlZG dd deZG dd deZ	G dd	 d	e j
Zed
kr;e   dS dS )    N)support)warnings_helperc                   @      e Zd ZdS )NoAllN__name__
__module____qualname__ r
   r
   G/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/test/test___all__.pyr          r   c                   @   r   )FailedImportNr   r
   r
   r
   r   r      r   r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )AllTestc                 C   s  i }t jdtfdtfdtfdd z	td| | W n   t|W d    n1 s-w   Y  ttj	| ds>t
|i }| j|d t jdtfdtfddg z	td| | W n ty{ } z| d	||jj| W Y d }~nd }~ww d
|v r|d
= d|v r|d= d|v r|d= t|}tj	| j}t|}| ||d| | ||d| W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nz.* (module|package) T)quietz	import %s__all__)modulezfrom %s import *z__all__ failure in {}: {}: {}__builtins____annotations__Z__warningregistry__zin module {})r   Zcheck_warningsDeprecationWarningPendingDeprecationWarningResourceWarningexecr   hasattrsysmodulesr   ZsubTest	ExceptionZfailformat	__class__r   setr   ZassertCountEqualZassertEqual)selfmodnamenamesekeysZall_listZall_setr
   r
   r   	check_all   sZ   
"zAllTest.check_allc                 c   s    t t|D ]M}tj||}tj|r@tj|d}tj|r?||| fV  | ||| d D ]	\}}||fV  q5q|drI|dkrJq|||d d  fV  qd S )Nz__init__.py.z.py)	sortedoslistdirpathjoinisdirexistswalk_modulesendswith)r    Zbasedirmodpathfnr+   Zpkg_initpmr
   r
   r   r/   9   s   zAllTest.walk_modulesc              	   C   s4  t dg}tjdsdd l}g }g }tjtjt}| 	|dD ]e\}}|}d}	|r=||v r4d}	q=|
dd }|s-|	r@q#tjrGt| z&t|d}
d	|
 vrXt|| | W d    n1 sgw   Y  W q# ty{   || Y q# ty   || Y q#w tjrtd
| td| d S d S )NZ
__future__javar   r   FTr&   rbs   __all__z8Following modules have no __all__ and have been ignored:z(Following modules failed to be imported:)r   r   platform
startswith_socketr)   r+   dirname__file__r/   
rpartitionr   verboseprintopenreadr   r%   appendr   )r    Zdenylistr9   ZignoredZfailed_importsZlib_dirr+   r!   r4   Zdeniedfr
   r
   r   test_allG   sN   zAllTest.test_allN)r   r   r	   r%   r/   rC   r
   r
   r
   r   r      s    (r   __main__)Zunittesttestr   Ztest.supportr   r)   r   RuntimeErrorr   r   ZTestCaser   r   mainr
   r
   r
   r   <module>   s    e