o
    pj                     @  s   d Z ddlmZ ddlZddlZddlmZ ddlmZ ee	
 jd Zejdee ejdZedurAeedsAejd= ddlmZ dd	lmZ G d
d dejZedkrbejdd dS dS )z1Agent tool discovery and tenant filtering checks.    )annotationsN)Path)patch   platform__path__)_tenant_agent_toolsc                   @  s   e Zd Zdd Zdd ZdS )AgentCatalogChecksc              	   C  s   dddddddgi}t d|d% t d	tjd}td
dd}W d    n1 s+w   Y  W d    n1 s:w   Y  | dgdd |D  |d d S )Nappsabn_lookup_appTapp_idenableddisabled_appF8platform.gateway.platform_api.get_effective_entitlementsreturn_value+platform.gateway.platform_api.load_manifesttenant-acompactzbusiness.au.abn.lookupc                 S  s   g | ]}|d  qS )
capability ).0toolr   r   &tests/platform/agent_catalog_checks.py
<listcomp>"   s    zYAgentCatalogChecks.test_catalog_contains_only_tools_from_enabled_apps.<locals>.<listcomp>)r   abn_appAPP_MANIFESTr   assertEqualassert_called_once_with)selfentitlementsloadtoolsr   r   r   2test_catalog_contains_only_tools_from_enabled_apps   s(    zEAgentCatalogChecks.test_catalog_contains_only_tools_from_enabled_appsc              	   C  s   t dddddgid' t dtjd tdd	d
d }W d    n1 s'w   Y  W d    n1 s6w   Y  | d|d d d d  t| }| d| | d| d S )Nr   r
   r   Tr   r   r   r   Fr   r   z^[0-9]{11}$input_schema
propertiesabnpatternabr_lookup_guidsource)r   r   r   r   r   reprlowerassertNotIn)r!   r   
serializedr   r   r   9test_full_catalog_has_schema_but_no_credentials_or_source%   s"    zLAgentCatalogChecks.test_full_catalog_has_schema_but_no_credentials_or_sourceN)__name__
__module____qualname__r%   r0   r   r   r   r   r	      s    r	   __main__)	verbosity)__doc__
__future__r   sysunittestpathlibr   unittest.mockr   __file__resolveparentsPROJECT_ROOTpathinsertstrmodulesgetloaded_platformhasattrapps.abn_lookup_appr   r   $bridge_platform.gateway.platform_apir   TestCaser	   r1   mainr   r   r   r   <module>   s"     