
    jof                         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                   Z G d d	e	e                   Zd
S )    )InvalidRequestError)
quote_plus)TypeVarClassVarAny)Protocol)APIResourceT)boundc                       e Zd ZU dZee         ed<   eed<   d Ze	d             Z
e	d             Ze	d             Ze	d             Z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                     || _         d S N)r   )selfr   s     N/var/www/html/Alfredo/env/lib/python3.11/site-packages/stripe/_test_helpers.py__init__zAPIResourceTestHelpers.__init__   s         c                 &     | j         j        |i |S r   )r   _static_requestclsargskwargss      r   r   z&APIResourceTestHelpers._static_request   s    0s 0$A&AAAr   c                 6   K    | j         j        |i | d {V S r   )r   _static_request_asyncr   s      r   r   z,APIResourceTestHelpers._static_request_async    s3      <S&<dMfMMMMMMMMMr   c                 &     | j         j        |i |S r   )r   _static_request_streamr   s      r   r   z-APIResourceTestHelpers._static_request_stream$   s    7s 7HHHHr   c                     | t           k    rt          d          | j        j                            dd          }d|dS )NzrAPIResourceTestHelpers is an abstract class.  You should perform actions on its subclasses (e.g. Charge, Customer)./z/v1/test_helpers/s)r   NotImplementedErrorr   OBJECT_NAMEreplace)r   bases     r   	class_urlz APIResourceTestHelpers.class_url(   sR    (((%D    ,44S#>>)-//r   c           
         t          | j        dd           }t          |t                    s9t	          dt          |           j        d|dt          |          dd          |                                 }t          |          }|d|S )Nidz*Could not determine which URL to request: z instance has invalid ID: z, z+. ID should be of type `str` (or `unicode`)r"   )	getattrr   
isinstancestrr   type__name__r(   r   )r   r*   r'   extns       r   instance_urlz#APIResourceTestHelpers.instance_url4   s    T]D$//"c"" 	%% "&d!4!4!4bbb$r((((D 	   ~~"~~$$%%r   N)r/   
__module____qualname____doc__r   r   __annotations__r
   r   classmethodr   r   r   r(   r1    r   r   r   r      s           C=   KKK! ! ! B B [B N N [N I I [I 	0 	0 [	0& & & & &r   r   N)stripe._errorr   urllib.parser   typingr   r   r   typing_extensionsr   stripe._api_resourcer	   r
   r   r7   r   r   <module>r=      s    - - - - - - # # # # # # ) ) ) ) ) ) ) ) ) ) & & & & & & , , , , , ,GC{3'(((6& 6& 6& 6& 6&Xa[ 6& 6& 6& 6& 6&r   