
    jKj                     d    d Z ddlmZ ddlmZ ddlmZ ddlm	Z	m
ZmZ d Zd Zd Zd	 Zd
 Zd Zy)zKEnd-to-end tests for the low-level mcp.server.Server adapter (Milestone 3).    N)Server)
instrument)
FakeClientevents_namedflush_backgroundc                  t    t        d      } | j                         d        }| j                         d        }| S )Nztest-lowlevelc                  N   K   t        j                  ddddddiidgd      gS w)	NechozEcho back a messageobjectmsgtypestring)r   
propertiesrequired)namedescriptioninputSchema)	mcp_typesTool     o/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/posthog/test/mcp/test_lowlevel.py
list_toolszmake_server.<locals>.list_tools   s>      NN1$#(68*<"=!&

 
	
s   #%c                    K   | dk(  r0t        j                  dt        |j                  d                  gS t	        d      w)Nr
   textr   )r   r   boom)r   TextContentstrget
ValueErrorr   	argumentss     r   	call_toolzmake_server.<locals>.call_tool   s<     6>))vC	e@T<UVWW  s   AA)r   r   r#   )serverr   r#   s      r   make_serverr%      sK    O$F
 
 ! !
 Mr   c                 Z    t        j                  dt        j                  | |            S )Nz
tools/callr!   )methodparams)r   CallToolRequestCallToolRequestParamsr!   s     r   _call_requestr+   (   s(    $$..DIN r   c                    K   t               } t               }t        | |       | j                  t        j
                     } |t	        j
                  d             d {   }t                d {    |j                  j                  d   }d|j                  d   v sJ d|j                  j                  dg       vsJ t        |d      }|r|d   d   d   d	gk(  sJ y 7 7 rw)
N
tools/listr'   r   contextr   r   z$mcp_tools_listz$mcp_listed_tool_namesr
   )r%   r   r   request_handlersr   ListToolsRequest_flushroottoolsr   r   _events)r$   clienthandlerresulttoollisteds         r   5test_list_tools_injects_optional_context_and_capturesr;   /   s     ]F\Fvv%%i&@&@AG955\JKKF
(NN;;QD((6666D,,00R@@@@V./FfQi-.FGF8SSSS Ls%   AC&C" C&1C$2A1C&$C&c                  H  K   t               } t               }t        | |        | j                  t        j
                     t	        j
                  d             d {    | j                  t        j                     } |t        dddd             d {   }t                d {    |j                  j                  du sJ t        |d      }t        |      d	k(  sJ |d
   d   }|d   dk(  sJ |d   dk(  sJ |d   du sJ d|d   d   d   d   vsJ y 7 7 7 vw)Nr-   r.   r
   hizechoing a message for the testr   r/   F$mcp_tool_call   r   r   z$mcp_tool_namez$mcp_intent$mcp_is_errorr/   z$mcp_parametersrequestr(   r"   )r%   r   r   r0   r   r1   r)   r+   r2   r3   isErrorr5   len)r$   r6   r7   r8   callspropss         r   &test_tool_call_success_captures_intentrG   A   sJ    ]F\Fvv >&
!
!)"<"<
="",7   %%i&?&?@GD-MN	
 F
 (NN;;%'''F,-Eu:??!H\"E!"f,,,#CCCC!U***E"34Y?I+VVVV)

 s7   AD"D9D"DD")D *A3D"D" D"c                    K   t               } t               }t        | |       | j                  t        j
                     } |t        dddi             d {   }t                d {    |j                  j                  du sJ t        |d      }|r|d   d   d   du sJ t        |d	      }|rd
|d   d   d   d   d   v sJ y 7 q7 aw)Nfailr/   ztrying a tool that errorsTr?   r   r   rA   z
$exceptionr   z$exception_listvalue)r%   r   r   r0   r   r)   r+   r2   r3   rC   r5   )r$   r6   r7   r8   rE   
exceptionss         r   2test_tool_call_error_captured_from_is_error_resultrL   ^   s     ]F\Fvv%%i&?&?@Gfy*EFG F (NN;;$&&&F,-EU1Xl+O<DDD.JjmL12CDQGPP	QP s%   ACC	C)C*A CCc                    K   t               } t               }t        | |       | j                  t        j
                     } |t        dddd             d {     |t        dddd             d {    t                d {    t        t        |d            dk(  sJ t        t        |d	            d
k(  sJ y 7 h7 M7 =w)Nr
   az
first callr>   bzsecond callz$mcp_initializer@   r?      )
r%   r   r   r0   r   r)   r+   r2   rD   r5   )r$   r6   r7   s      r   test_initialize_emitted_oncerQ   t   s     ]F\Fvv%%i&?&?@G
-(MN
OOO
-(NO
PPP
(NNwv012a777wv/01Q666 PPs6   ACCC5C6CC:CCC)__doc__	mcp.typestypesr   mcp.server.lowlevelr   posthog.mcpr   posthog.test.mcp._helpersr   r   r5   r   r2   r%   r+   r;   rG   rL   rQ   r   r   r   <module>rX      s;    Q  & " 4T$W:,7r   