a
    ù!fq  ã                   @   s(   d Z G dd„ deƒZG dd„ deƒZdS )z-Mocks used to emulate gRPC generated objects.c                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )Ú	_FakeStubzActs as a gPRC stub.c                 G   s   || _ g | _d| _g | _d S )Né    )ÚresultsÚmethod_callsÚ_enteredÚ_exited)Úselfr   © r   úY/var/www/html/python-backend/venv/lib/python3.9/site-packages/gcloud/bigtable/_testing.pyÚ__init__   s    z_FakeStub.__init__c                 C   s   |  j d7  _ | S )Né   )r   )r   r   r   r	   Ú	__enter__   s    z_FakeStub.__enter__c                 C   s   | j  |||f¡ dS )NT)r   Úappend)r   Úexc_typeÚexc_valÚexc_tbr   r   r	   Ú__exit__   s    z_FakeStub.__exit__c                 C   s
   t || ƒS ©N)Ú_MethodMock)r   Únamer   r   r	   Ú__getattr__#   s    z_FakeStub.__getattr__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r   r   r   r   r   r   r	   r      s
   r   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )r   z°Mock for API method attached to a gRPC stub.

    In the beta implementation, these are of type.
    :class:`grpc.framework.crust.implementations._UnaryUnaryMultiCallable`
    c                 C   s   || _ || _d S r   )Ú_nameÚ_factory)r   r   Úfactoryr   r   r	   r
   0   s    z_MethodMock.__init__c                 O   s<   | j j | j||f¡ | j jd | j jdd…  }| j _|S )z.Sync method meant to mock a gRPC stub request.r   r   N)r   r   r   r   r   )r   ÚargsÚkwargsZcurr_resultr   r   r	   Ú__call__4   s
    
ÿ
z_MethodMock.__call__N)r   r   r   r   r
   r   r   r   r   r	   r   )   s   r   N)r   Úobjectr   r   r   r   r   r	   Ú<module>   s   