
    tniS                     4    d Z ddlZddlZ G d d          ZdS )z2Tests for runpod.endpoint.__init__ module exports.    Nc                   <    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestEndpointInitz,Test runpod.endpoint module __all__ exports.c                     t          t          j        d          sJ t          t          j        j        t
                    sJ t          t          j        j                  dk    sJ dS )z+Test that __all__ is defined in the module.__all__r   N)hasattrrunpodendpoint
isinstancer   listlenselfs    Z/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/tests/test_endpoint/test_init.pytest_all_definedz!TestEndpointInit.test_all_defined
   sY    v	22222&/14888886?*++a//////    c                 ~    t           j        j        D ]*}t          t           j        |          sJ d| d            +dS )z9Test that all symbols in __all__ are actually importable.zSymbol 'z$' in __all__ but not found in moduleN)r   r	   r   r   )r   symbols     r   test_all_symbols_importablez,TestEndpointInit.test_all_symbols_importable   sS    o- 	m 	mF6?F33ll5l5l5l5lllll	m 	mr   c                 v    h d}t          t          j        j                  }||k    sJ d| d|             dS )z1Test that expected public symbols are in __all__.>   JobEndpoint
AsyncioJobAsyncioEndpoint	Expected , got N)setr   r	   r   )r   expected_symbolsactual_symbolss      r   test_expected_public_symbolsz-TestEndpointInit.test_expected_public_symbols   sZ    
 
 
 V_455>1113g?O3g3gWe3g3g11111r   c                     g d}|D ]a}|t           j        j        v sJ t          t           j        |          sJ t	          j        t          t           j        |                    sJ bdS )z:Test that endpoint classes are accessible and are classes.)r   r   r   r   N)r   r	   r   r   inspectisclassgetattr)r   endpoint_classes
class_names      r    test_endpoint_classes_accessiblez1TestEndpointInit.test_endpoint_classes_accessible    s~    OOO* 	I 	IJ!888886?J77777?76?J#G#GHHHHHH	I 	Ir   c                     t           j        j        t           j        j        k    sJ t           j        j        t           j        j        k    sJ dS )z9Test that asyncio classes are distinct from sync classes.N)r   r	   r   r   r   r   r   s    r   test_asyncio_classes_distinctz.TestEndpointInit.test_asyncio_classes_distinct)   s>    .&/2JJJJJ)V_-@@@@@@@r   c                     t           j        j        t                    }t	                    t	          |          k    sJ dfdD                          dS )z0Test that __all__ contains no duplicate symbols.zDuplicates found in __all__: c                 F    g | ]}                     |          d k    |S )   )count).0xall_symbolss     r   
<listcomp>zETestEndpointInit.test_no_duplicate_symbols_in_all.<locals>.<listcomp>2   sn      YM  YM  YM_`s~  tE  tE  FG  tH  tH  KL  tL  tLYZ  tL  tL  tLr   N)r   r	   r   r   r   )r   unique_symbolsr/   s     @r    test_no_duplicate_symbols_in_allz1TestEndpointInit.test_no_duplicate_symbols_in_all.   s    o-[));3~#6#6666  9O  YM  YM  YM  YMdo  YM  YM  YM  9O  9O66666r   c                 ,   d t          t          j                  D             }t                      }||z
  }t          t          j        j                  }|                    |          sJ d||z
               h d}||k    sJ d| d|             dS )z8Test that __all__ contains only the intended public API.c                 <    h | ]}|                     d           |S )_)
startswith)r-   names     r   	<setcomp>zCTestEndpointInit.test_all_covers_public_api_only.<locals>.<setcomp>7   s8     4 4 4"ooc224 4 4 4r   z%__all__ contains non-public symbols: >   r   r   r   r   r   r   N)dirr   r	   r   r   issubset)r   module_attrsexpected_private_attrspublic_attrsr/   expected_public_apis         r   test_all_covers_public_api_onlyz0TestEndpointInit.test_all_covers_public_api_only4   s    4 4V_)=)= 4 4 4 "%#&<<&/122 ##L11ww3w[fiu[u3w3wwww SRR11113g?R3g3gZe3g3g11111r   N)__name__
__module____qualname____doc__r   r   r   r&   r(   r2   r?    r   r   r   r      s        660 0 0m m m
	h 	h 	hI I IA A A
O O Oh h h h hr   r   )rC   r!   runpod.endpointr   r   rD   r   r   <module>rF      s\    8 8     >h >h >h >h >h >h >h >h >h >hr   