o
    i                     @   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 )    )InvalidRequestError)
quote_plus)TypeVarClassVarAny)Protocol)APIResourceT)boundc                   @   sf   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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   t/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/_test_helpers.py__init__   s   
zAPIResourceTestHelpers.__init__c                 O      | j j|i |S r   )r   _static_requestclsargskwargsr   r   r   r         z&APIResourceTestHelpers._static_requestc                    s   | j j|i |I d H S r   )r   _static_request_asyncr   r   r   r   r       s   z,APIResourceTestHelpers._static_request_asyncc                 O   r   r   )r   _static_request_streamr   r   r   r   r   $   r   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   OBJECT_NAMEreplace)r   baser   r   r   	class_url(   s   
z APIResourceTestHelpers.class_urlc                 C   sR   t | jdd }t|tst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   type__name__r"   r   )r   r#   r!   extnr   r   r   instance_url4   s   
z#APIResourceTestHelpers.instance_urlN)r(   
__module____qualname____doc__r   r   __annotations__r	   r   classmethodr   r   r   r"   r*   r   r   r   r   r      s   
 




r   N)stripe._errorr   urllib.parser   typingr   r   r   typing_extensionsr   stripe._api_resourcer   r	   r   r   r   r   r   <module>   s    