a
    !f                     @   sl   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZ edee dZG dd	 d	e	e Zd
S )    )error)
quote_plus)TypeVarClassVarAny)Protocol)APIResourceT)boundc                   @   sZ   e Zd ZU dZee ed< eed< dd Ze	dd Z
e	dd	 Ze	d
d Zdd ZdS )APIResourceTestHelpersa!  
    The base type for the TestHelper nested classes.
    Handles request URL generation for test_helper custom methods.
    Should be used in combination with the @test_helpers decorator.

    @test_helpers
    class Foo(APIResource):
      class TestHelpers(APIResourceTestHelpers):
    _resource_clsresourcec                 C   s
   || _ d S N)r   )selfr    r   k/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/abstract/test_helpers.py__init__   s    zAPIResourceTestHelpers.__init__c                 O   s   | j j|i |S r   )r   _static_requestclsargskwargsr   r   r   r      s    z&APIResourceTestHelpers._static_requestc                 O   s   | j j|i |S r   )r   _static_request_streamr   r   r   r   r       s    z-APIResourceTestHelpers._static_request_streamc                 C   s*   | t krtd| jjdd}d|f S )NzrAPIResourceTestHelpers is an abstract class.  You should perform actions on its subclasses (e.g. Charge, Customer)./z/v1/test_helpers/%ss)r   NotImplementedErrorr   ZOBJECT_NAMEreplace)r   baser   r   r   	class_url$   s    z APIResourceTestHelpers.class_urlc                 C   sT   t | jdd }t|ts8tdt| j|t|f d|  }t	|}d||f S )NidzwCould not determine which URL to request: %s instance has invalid ID: %r, %s. ID should be of type `str` (or `unicode`)z%s/%s)
getattrr   
isinstancestrr   ZInvalidRequestErrortype__name__r   r   )r   r   r   Zextnr   r   r   instance_url0   s    
z#APIResourceTestHelpers.instance_urlN)r$   
__module____qualname____doc__r   r   __annotations__r	   r   classmethodr   r   r   r%   r   r   r   r   r      s   




r   N)Zstriper   urllib.parser   typingr   r   r   Ztyping_extensionsr   Zstripe.api_resources.abstractr   r	   r   r   r   r   r   <module>   s   