
    Dhh4                         S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJrJr  S SKJrJrJrJrJr  S S	KJrJrJr   " S
 S\S   \S   \S   5      rg)    )CreateableAPIResource)DeletableAPIResource)
ListObject)ListableAPIResource)RequestOptions)StripeObject)class_method_variantsanitize_id)ClassVarListOptionalcastoverload)LiteralNotRequiredUnpackc                      \ rS rSr% SrSr\\S      \S'    " S S\	5      r
 " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r\\S'    \\S      \S'    \\S'    \\S'    \\S'    \\S'    \\   \S'    \S   \S'    \S   \S'    \
\S'   \S\S\S   S S 4S! j5       r\\S\S\S   S S 4S" j5       5       r\S\S   S S 4S# j5       r\" S$5      S\S   S S 4S% j5       r\S\S\S   S S 4S& j5       r\\S\S\S   S S 4S' j5       5       r\S\S   S S 4S( j5       r\" S)5      S\S   S S 4S* j5       r\S\S+   S S 4S, j5       r\S\S+   S S 4S- j5       r\S.\S\S/   S S 4S0 j5       r \\S.\S\S/   S S 4S1 j5       5       r!\S\S/   S S 4S2 j5       r!\" S35      S\S/   S S 4S4 j5       r!\S.\S\S/   S S 4S5 j5       r"\\S.\S\S/   S S 4S6 j5       5       r#\S\S/   S S 4S7 j5       r#\" S85      S\S/   S S 4S9 j5       r#\S\S:   S \$S    4S; j5       r%\S\S:   S \$S    4S< j5       r&\S\S\S=   S S 4S> j5       r'\S\S\S=   S S 4S? j5       r(S\
0r)S@r*gA)B	TestClock   a  
A test clock enables deterministic control over objects in testmode. With a test clock, you can create
objects at a frozen time in the past or future, and advance to a specific future time to observe webhooks and state changes. After the clock advances,
you can either validate the current state of your scenario (and test your assumptions), change the current state of your scenario (and test more complex scenarios), or keep advancing forward in time.
ztest_helpers.test_clockOBJECT_NAMEc                   D    \ rS rSr%  " S S\5      r\\   \S'   S\0rSr	g)TestClock.StatusDetails   c                        \ rS rSr% \\S'   Srg)!TestClock.StatusDetails.Advancing   target_frozen_time N)__name__
__module____qualname____firstlineno__int__annotations____static_attributes__r       b/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/stripe/test_helpers/_test_clock.py	Advancingr      s     ##r&   r(   	advancingr   N)
r   r    r!   r"   r   r(   r   r$   _inner_class_typesr%   r   r&   r'   StatusDetailsr      s&    	 	 I&&)95r&   r+   c                   8    \ rS rSr% \\\      \S'    \\S'   Sr	g)TestClock.AdvanceParams'   expandfrozen_timer   N
r   r    r!   r"   r   r   strr$   r#   r%   r   r&   r'   AdvanceParamsr-   '   s#    DI&&	 	r&   r3   c                   J    \ rS rSr% \\\      \S'    \\S'    \\   \S'   Sr	g)TestClock.CreateParams1   r/   r0   namer   Nr1   r   r&   r'   CreateParamsr5   1   s5    DI&&	 	 #	r&   r8   c                       \ rS rSrSrg)TestClock.DeleteParams?   r   N)r   r    r!   r"   r%   r   r&   r'   DeleteParamsr:   ?   s    r&   r<   c                   b    \ rS rSr% \\   \S'    \\\      \S'    \\   \S'    \\   \S'   Sr	g)TestClock.ListParamsB   ending_beforer/   limitstarting_afterr   N)
r   r    r!   r"   r   r2   r$   r   r#   r%   r   r&   r'   
ListParamsr>   B   sL    "3''	 DI&&	 3	 $C((	r&   rC   c                   ,    \ rS rSr% \\\      \S'   Srg)TestClock.RetrieveParamsT   r/   r   N)	r   r    r!   r"   r   r   r2   r$   r%   r   r&   r'   RetrieveParamsrE   T   s    DI&&	r&   rG   createdTdeleteddeletes_afterr0   idlivemoder7   object)r)   internal_failurereadystatusstatus_details
test_clockparamsr-   returnc                 d    [        SU R                  SSR                  [        U5      S9US95      $ )t
Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready.
r   post1/v1/test_helpers/test_clocks/{test_clock}/advancerR   rS   )r   _static_requestformatr
   clsrR   rS   s      r'   _cls_advanceTestClock._cls_advance   sK     CJJ*:6 K     	
 		
r&   c                     grV   Nr   rR   rS   s     r'   advanceTestClock.advance        	r&   c                     grb   r   selfrS   s     r'   rd   re           	r&   r_   c                     [        SU R                  SSR                  [        U R	                  S5      5      S9US95      $ )rV   r   rW   rX   rK   rY   rZ   )r   _requestr\   r
   getrh   s     r'   rd   re      sQ     MMCJJ*488D>: K    	
 		
r&   c                    #    [        SU R                  SSR                  [        U5      S9US9I Sh  vN 5      $  N7f)rV   r   rW   rX   rY   rZ   N)r   _static_request_asyncr\   r
   r]   s      r'   _cls_advance_asyncTestClock._cls_advance_async   sX      ++CJJ*:6 K   ,  	
 		
s   1><
	>c                    #    g7frb   r   rc   s     r'   advance_asyncTestClock.advance_async   
      	   c                    #    g7frb   r   rh   s     r'   rs   rt      
      	rv   rp   c                    #    [        SU R                  SSR                  [        U R	                  S5      5      S9US9I Sh  vN 5      $  N7f)rV   r   rW   rX   rK   rY   rZ   N)r   _request_asyncr\   r
   rm   rh   s     r'   rs   rt      s`      %%CJJ*488D>: K   &  	
 		
s   A AA
	Ar5   c           	      T    [        SU R                  SU R                  5       US95      $ )L
Creates a new test clock that can be attached to new customers and quotes.
r   rW   rZ   )r   r[   	class_urlr^   rS   s     r'   createTestClock.create   s6    
    
 	
r&   c           	      p   #    [        SU R                  SU R                  5       US9I Sh  vN 5      $  N7f)r|   r   rW   rZ   N)r   ro   r}   r~   s     r'   create_asyncTestClock.create_async   sC      ++ ,  
 	
s   )64
	6sidr:   c           	      x    U R                  5       < S[        U5      < 3n[        SU R                  SUUS95      $ )
Deletes a test clock.
/r   deleterZ   )r}   r
   r   r[   r^   r   rS   urls       r'   _cls_deleteTestClock._cls_delete  sE     +c*:;   
 	
r&   c                     gr   Nr   r   rS   s     r'   r   TestClock.delete  rf   r&   c                     gr   r   rh   s     r'   r   r   '  rj   r&   r   c                 @    U R                  SU R                  5       US9$ )r   r   rZ   )_request_and_refreshinstance_urlrh   s     r'   r   r   0  s.     (( ) 
 	
r&   c           	         #    U R                  5       < S[        U5      < 3n[        SU R                  SUUS9I Sh  vN 5      $  N7f)r   r   r   r   rZ   N)r}   r
   r   ro   r   s       r'   _cls_delete_asyncTestClock._cls_delete_async=  sR      +c*:;++ ,  
 	
s   ;AA
	Ac                    #    g7fr   r   r   s     r'   delete_asyncTestClock.delete_asyncN  ru   rv   c                    #    g7fr   r   rh   s     r'   r   r   X  rx   rv   r   c                 \   #    U R                  SU R                  5       US9I Sh  vN $  N7f)r   r   rZ   N)_request_and_refresh_asyncr   rh   s     r'   r   r   a  s;      44 5 
 
 	
 
s   #,*,r>   c                     U R                  SU R                  5       US9n[        U[        5      (       d!  [	        S[        U5      R                  -  5      eU$ )%
Returns a list of your test clocks.
rm   rZ   %Expected list object from API, got %s)r[   r}   
isinstancer   	TypeErrortyper   r^   rS   results      r'   listTestClock.listn  s`     $$MMO % 

 &*--7<((* 
 r&   c                    #    U R                  SU R                  5       US9I Sh  vN n[        U[        5      (       d!  [	        S[        U5      R                  -  5      eU$  N<7f)r   rm   rZ   Nr   )ro   r}   r   r   r   r   r   r   s      r'   
list_asyncTestClock.list_async  sm      00MMO 1 
 

 &*--7<((* 
 
s   #A$A"=A$rE   c                 8    U " U40 UD6nUR                  5         U$ )
Retrieves a test clock.
)refreshr^   rK   rS   instances       r'   retrieveTestClock.retrieve  s$     r$V$r&   c                 T   #    U " U40 UD6nUR                  5       I Sh  vN   U$  N7f)r   N)refresh_asyncr   s       r'   retrieve_asyncTestClock.retrieve_async  s2      r$V$$$&&& 	's   (&(r   N)+r   r    r!   r"   __doc__r   r   r   r$   r   r+   r   r3   r8   r<   rC   rG   r#   r   r2   boolclassmethodr   r_   r   staticmethodrd   r	   rp   rs   r   r   r   r   r   r   r   r   r   r   r   r*   r%   r   r&   r'   r   r      s3   
 	" '";<= 6 6 ~ ~ ^ $  L gdm$$   	G N 3- -.. <== "!

(./H(I
	
 
" #)*C#D	   89	  .)
89
	
 *
" 

(./H(I
	
 
" #)*C#D	   89	  ./
89
	
 0
" 
f%=> 
; 
 
 
67
	
 
 

!'(@!A
	
 
  "#;<	   78	  -(

78

	

 )

 

!'(@!A
	
 
  "#;<	   78	  -.

78

	

 /

 45	K	  & 45	K	  &  &'A B	   &'A B	  +M:r&   r   N)stripe._createable_api_resourcer   stripe._deletable_api_resourcer   stripe._list_objectr   stripe._listable_api_resourcer   stripe._request_optionsr   stripe._stripe_objectr   stripe._utilr	   r
   typingr   r   r   r   r   typing_extensionsr   r   r   r   r   r&   r'   <module>r      sM    B ? * = 2 . : ; ; : :^;+&%$^;r&   