
    h                     ~    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y
)    )InvalidRequestError)
quote_plus)TypeVarClassVarAny)Protocol)APIResourceT)boundc                   x    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y
)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                     || _         y N)r   )selfr   s     T/var/www/api/v1/venv_getwork_v1/lib/python3.12/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0$A&AAr   c                 V   K    | j                   j                  |i | d {   S 7 wr   )r   _static_request_asyncr   s      r   r   z,APIResourceTestHelpers._static_request_async    s*     <S&&<<dMfMMMMs    )')c                 :     | j                   j                  |i |S r   )r   _static_request_streamr   s      r   r   z-APIResourceTestHelpers._static_request_stream$   s     7s  77HHHr   c                     | t         k(  rt        d      | j                  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(   sG    ((%D    ,,44S#>)-//r   c           
          t        | j                  dd       }t        |t              s2t	        dt        |       j                  d|dt        |      dd      | j                         }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   so    T]]D$/"c"% "&d!4!4b$r(D 	  ~~"~%%r   N)r/   
__module____qualname____doc__r   r   __annotations__r
   r   classmethodr   r   r   r(   r1    r   r   r   r      sx     C= K! B B N N I I 	0 	0&r   r   N)stripe._errorr   urllib.parser   typingr   r   r   typing_extensionsr   stripe._api_resourcer	   r
   r   r7   r   r   <module>r=      s8    - # ) ) & ,C{3'(6&Xa[ 6&r   