
    tni                     4    d Z ddlZddlZ G d d          ZdS )z)Tests for runpod.__init__ module exports.    Nc                   Z    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestRunpodInitz#Test runpod module __all__ exports.c                     t          t          d          sJ t          t          j        t                    sJ t          t          j                  dk    sJ dS )z+Test that __all__ is defined in the module.__all__r   N)hasattrrunpod
isinstancer   listlenselfs    L/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/tests/test_init.pytest_all_definedzTestRunpodInit.test_all_defined
   sQ    vy)))))&.$/////6>""Q&&&&&&    c                 j    t           j        D ]%}t          t           |          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   symbols     r   test_all_symbols_importablez*TestRunpodInit.test_all_symbols_importable   sN    n 	d 	dF66**cc,cv,c,c,ccccc	d 	dr   c                     g d}|D ]M}|t           j        v sJ t          t           |          sJ t          t	          t           |                    sJ NdS )z4Test that API functions are accessible and callable.)create_container_registry_authcreate_endpoint
create_podcreate_templatedelete_container_registry_authget_endpointsget_gpuget_gpusget_podget_podsget_user
resume_podstop_podterminate_podupdate_container_registry_authupdate_endpoint_templateupdate_user_settingsNr   r   r   callablegetattr)r   api_functions	func_names      r   test_api_functions_accessiblez,TestRunpodInit.test_api_functions_accessible   sx    
 
 
 ' 	8 	8I....69-----GFI66777777	8 	8r   c                     g d}|D ]M}|t           j        v sJ t          t           |          sJ t          t	          t           |                    sJ NdS )z7Test that config functions are accessible and callable.)check_credentialsget_credentialsset_credentialsNr'   )r   config_functionsr+   s      r    test_config_functions_accessiblez/TestRunpodInit.test_config_functions_accessible#   sq    VVV) 	8 	8I....69-----GFI66777777	8 	8r   c                     g d}|D ]R}|t           j        v sJ t          t           |          sJ t          j        t          t           |                    sJ SdS )z*Test that endpoint classes are accessible.)AsyncioEndpoint
AsyncioJobEndpointN)r   r   r   inspectisclassr)   )r   endpoint_classes
class_names      r    test_endpoint_classes_accessiblez/TestRunpodInit.test_endpoint_classes_accessible,   sw    HHH* 	@ 	@J////6:.....?76:#>#>??????	@ 	@r   c                     dt           j        v sJ t          t           d          sJ t          j        t           j                  sJ dS )z*Test that serverless module is accessible.
serverlessN)r   r   r   r7   ismoduler=   r   s    r   !test_serverless_module_accessiblez0TestRunpodInit.test_serverless_module_accessible5   sK    v~----v|,,,,, 12222222r   c                     dt           j        v sJ t          t           d          sJ t          j        t           j                  sJ dS )z+Test that RunPodLogger class is accessible.RunPodLoggerN)r   r   r   r7   r8   rA   r   s    r   test_logger_class_accessiblez+TestRunpodInit.test_logger_class_accessible;   sJ    ////v~.....v23333333r   c                     dt           j        v sJ t          t           d          sJ t          t           j        t
                    sJ dS )z$Test that __version__ is accessible.__version__N)r   r   r   r	   rD   strr   s    r   test_version_accessiblez&TestRunpodInit.test_version_accessibleA   sJ    ....v}-----&,c2222222r   c                 f    g d}|D ])}|t           j        v sJ t          t           |          sJ *dS )z*Test that module variables are accessible.)SSH_KEY_PATHprofileapi_keyendpoint_url_baseNr   )r   module_varsvar_names      r    test_module_variables_accessiblez/TestRunpodInit.test_module_variables_accessibleG   sR    QQQ# 	- 	-Hv~----68,,,,,,	- 	-r   c                 n    h d}t          t          j                  }|D ]}||vsJ d| d            dS )z-Test that private imports are not in __all__.>   oslogging_credentialszPrivate symbol 'z' should not be in __all__Nsetr   r   )r   private_symbolsall_symbolsprivate_symbols       r   !test_private_imports_not_exportedz0TestRunpodInit.test_private_imports_not_exportedO   si    
 
 
 &.))- 	t 	tN!4446s6s6s6s4444	t 	tr   c                 l    h d}t          t          j                  }||k    sJ d| d|             dS )z;Test that __all__ contains the expected public API symbols.>   rJ   r   r   rI   r6   r   r   r    r"   r5   r   r!   r=   rD   rA   rH   r   r#   r4   r   r   r/   r0   r.   rK   r&   r%   r   r   r$   z	Expected z, got NrS   )r   expected_symbolsactual_symbolss      r   #test_all_covers_expected_public_apiz2TestRunpodInit.test_all_covers_expected_public_apiY   sW    
 
 
( V^,,>1113g?O3g3gWe3g3g11111r   c                     t           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xrV   s     r   
<listcomp>zCTestRunpodInit.test_no_duplicate_symbols_in_all.<locals>.<listcomp>v   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   rT   r   )r   unique_symbolsrV   s     @r    test_no_duplicate_symbols_in_allz/TestRunpodInit.test_no_duplicate_symbols_in_allr   s    n[));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   N)__name__
__module____qualname____doc__r   r   r,   r2   r;   r?   rB   rF   rN   rX   r\   re    r   r   r   r      s        --' ' 'd d d
8 8 88 8 8@ @ @3 3 34 4 43 3 3- - -t t th h h2O O O O Or   r   )ri   r7   r   r   rj   r   r   <module>rk      sc    / /  oO oO oO oO oO oO oO oO oO oOr   