o
    ÞË·eÊ  ã                   @   s^   d Z dZddlZddlmZ ddlmZ ddlmZ G dd„ dejƒZe	d	kr-e 
¡  dS dS )
z6Tests for google.protobuf.internal.service_reflection.zpetar@google.com (Petar Petrov)é    N)Úunittest_pb2)Úservice_reflection)Úservicec                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚFooUnitTestc           
         s˜  G dd„ dt jƒ}G dd„ dt jƒ}d ˆ _G dd„ dtjƒ}d ˆ _‡ fdd„}|ƒ }|ƒ }|ƒ }| |t ¡ |¡ ˆ  d	|j	¡ ˆ  d ˆ j¡ d |_	tj 
¡ }| |jd
 |t ¡ |¡ ˆ  | |jd
 ¡tju ¡ ˆ  | |jd
 ¡tju ¡ ˆ  d|j	¡ ˆ  d ˆ j¡ G dd„ dtjƒ}	|	ƒ }d |_	| |t ¡ |¡ ˆ  d |j	¡ ˆ  d|j¡ d |_	| |jd
 |t ¡ |¡ ˆ  d |j	¡ ˆ  d|j¡ d S )Nc                   @   ó   e Zd Zdd„ ZdS )z/FooUnitTest.testService.<locals>.MockRpcChannelc                 S   s   || _ || _|| _||ƒ d S ©N©ÚmethodÚ
controllerÚrequest)Úselfr
   r   r   ÚresponseÚcallback© r   úg/var/www/ideatree/venv/lib/python3.10/site-packages/google/protobuf/internal/service_reflection_test.pyÚ
CallMethod/   s   z:FooUnitTest.testService.<locals>.MockRpcChannel.CallMethodN©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   ÚMockRpcChannel.   ó    r   c                   @   r   )z2FooUnitTest.testService.<locals>.MockRpcControllerc                 S   s
   || _ d S r   )Úfailure_message)r   Úmsgr   r   r   Ú	SetFailed6   ó   
z<FooUnitTest.testService.<locals>.MockRpcController.SetFailedN)r   r   r   r   r   r   r   r   ÚMockRpcController5   r   r   c                   @   s   e Zd ZdS )z*FooUnitTest.testService.<locals>.MyServiceN)r   r   r   r   r   r   r   Ú	MyService;   s    r   c                    ó
   | ˆ _ d S r   ©Úcallback_response©r   ©r   r   r   Ú
MyCallback@   r   z+FooUnitTest.testService.<locals>.MyCallbackzMethod Foo not implemented.é   zMethod Bar not implemented.c                   @   r   )z.FooUnitTest.testService.<locals>.MyServiceImplc                 S   ó
   d| _ d S ©NT)Ú
foo_called©r   Úrpc_controllerr   Údoner   r   r   ÚFooY   r   z2FooUnitTest.testService.<locals>.MyServiceImpl.Fooc                 S   r&   r'   )Ú
bar_calledr)   r   r   r   ÚBar[   r   z2FooUnitTest.testService.<locals>.MyServiceImpl.BarN)r   r   r   r,   r.   r   r   r   r   ÚMyServiceImplX   s    r/   T)r   Ú
RpcChannelÚRpcControllerr!   r   ÚTestServicer,   Ú
FooRequestÚassertEqualr   ÚGetDescriptorr   ÚmethodsÚ
BarRequestÚ
assertTrueÚGetRequestClassÚGetResponseClassÚBarResponser(   r-   )
r   r   r   r   r$   r*   ÚchannelÚsrvcÚservice_descriptorr/   r   r#   r   ÚtestService-   sR   ÿ
ÿÿÿÿÿzFooUnitTest.testServicec                    s¨   G dd„ dt jƒ}d ˆ _‡ fdd„}|ƒ }t |¡}d}d}ˆ  tj ¡ | ¡ ¡ | |||¡ ˆ  ˆ jtj	¡ ˆ  ||j
¡ ˆ  ||j¡ ˆ  | ¡ jd |j¡ d S )Nc                   @   r   )z3FooUnitTest.testServiceStub.<locals>.MockRpcChannelc                 S   s    || _ || _|| _||ƒ ƒ d S r   r	   )r   r
   r   r   Úresponse_classr   r   r   r   r   l   s   z>FooUnitTest.testServiceStub.<locals>.MockRpcChannel.CallMethodNr   r   r   r   r   r   k   r   r   c                    r   r   r    r"   r#   r   r   r$   u   r   z/FooUnitTest.testServiceStub.<locals>.MyCallbackr   r   r   )r   r0   r!   r   ÚTestService_Stubr4   r5   r,   ÚassertIsInstanceÚFooResponser   r   r6   r
   )r   r   r$   r<   Ústubr*   r   r   r#   r   ÚtestServiceStubj   s   
ÿzFooUnitTest.testServiceStubN)r   r   r   r?   rE   r   r   r   r   r   +   s    =r   Ú__main__)Ú__doc__Ú
__author__ÚunittestÚgoogle.protobufr   r   r   ÚTestCaser   r   Úmainr   r   r   r   Ú<module>   s   _ÿ