
    m9i                     n    d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZ  G d de j                        Zy)    N)patch)	
clear_tagsget_tagsnew_contextscopedtagidentify_contextset_context_sessionget_context_session_idget_context_distinct_idc                       e Zd Zd Zd Zd Zd Zd Z ed      d        Z	 ed      d        Z
 ed      d	        Zd
 Zd Zd Zd Zd Zy)
TestScopesc                     t                y )N)r   selfs    a/var/www/html/leadgen/airagagent/rag_env/lib/python3.12/site-packages/posthog/test/test_scopes.pysetUpzTestScopes.setUp   s        c                     t        d      5  t        dd       t        dd       t               }|d   dk(  sJ |d   dk(  sJ 	 d d d        y # 1 sw Y   y xY w)NTfreshkey1value1key2   r   r   r   )r   tagss     r   test_tag_and_get_tagsz TestScopes.test_tag_and_get_tags   s]    t$ 	%!N:D<8+++<1$$$	% 	% 	%s   7AAc                     t        d      5  t        dd       t               d   dk(  sJ t                t               i k(  sJ 	 d d d        y # 1 sw Y   y xY w)NTr   r   r   )r   r   r   r   r   s    r   test_clear_tagszTestScopes.test_clear_tags   sS    t$ 	$!:f%111L:###	$ 	$ 	$s   8AAc                    t        d      5  t        dd       t        d      5  t               i k(  sJ t        dd       t               d   dk(  sJ | j                  dt                      d d d        t        d      5  t               ddik(  sJ 	 d d d        | j                  dt                      t               d   dk(  sJ 	 d d d        y # 1 sw Y   fxY w# 1 sw Y   KxY w# 1 sw Y   y xY w)NTr   outervalueinnerF)r   r   r   assertNotInr   s    r   test_new_context_isolationz%TestScopes.test_new_context_isolation'   s    t$ 	2!4( 	6zR''' GW%z'*g555   (*5	6 5) 8zgw%77778
 Whj1 :g&'111/	2 	2	6 	68 8	2 	2s;   C+AC.C+C4C+C	C+C(	$C++C4c                 ~   t        d      5  t        dd       t        d      5  t        dd       t        d      5  t        dd       t               ddik(  sJ 	 d d d        t               ddik(  sJ 	 d d d        t               ddik(  sJ 	 d d d        y # 1 sw Y   >xY w# 1 sw Y   0xY w# 1 sw Y   y xY w)	NTr   level1r   level2value2level3value3r   r   s    r   test_nested_contextszTestScopes.test_nested_contextsA   s    t$ 	6(#4( :Hh' t, >(+#:(H)====>
  zh%9999: :(H!5555	6 	6> >: :	6 	6s9   B3B'BB'8B3B$ B''B0	,B33B<zposthog.capture_exceptionc                     t               d        } |dd      }|dk(  sJ |j                          t               i k(  sJ y )Nc                 <    t        d|        t        d|       | |z   S )Nxyr   )r0   r1   s     r   successful_functionzETestScopes.test_scoped_decorator_success.<locals>.successful_functionT   s    QKQKq5Lr      r      )r   assert_not_calledr   )r   mock_capturer3   results       r   test_scoped_decorator_successz(TestScopes.test_scoped_decorator_successR   sR    		 
	
 %Q* {{ 	&&( zRr   c                     t        d      d }||_        t               fd       }| j                  t               5   |        d d d        |j	                         t               i k(  sJ y # 1 sw Y   *xY w)NzTest exceptionc                 D    t               }|j                  d      dk(  sJ y Nimportant_contextr#   r   get	exceptionkwargscurrent_tagss      r   check_context_on_capturezLTestScopes.test_scoped_decorator_exception.<locals>.check_context_on_capturei   s#    #:L##$78GCCCr   c                       t        dd        r<   r2   )test_exceptions   r   failing_functionzDTestScopes.test_scoped_decorator_exception.<locals>.failing_functionp   s    #W-  r   )
ValueErrorside_effectr   assertRaisesassert_called_once_withr   )r   r7   rD   rG   rF   s       @r   test_scoped_decorator_exceptionz*TestScopes.test_scoped_decorator_exceptione   s    #$45	D
 $< 		! 
	!
 z* 		 	,,^< zR	 	s   A//A8c                 :   t        d      }d }||_        t               5  t        dd       	 t               5  t        dd       |# 1 sw Y   nxY wn# t         $ r Y nw xY wt	               d   dk(  sJ 	 d d d        n# 1 sw Y   nxY w|j                  |       y )NzContext exceptionc                 D    t               }|j                  d      dk(  sJ y )Ninner_contextinner_valuer>   r@   s      r   rD   zPTestScopes.test_new_context_exception_handling.<locals>.check_context_on_capture   s"    #:L##O4EEEr   outer_contextouter_valuerO   rP   )RuntimeErrorrI   r   r   r   rK   )r   r7   rF   rD   s       r   #test_new_context_exception_handlingz.TestScopes.test_new_context_exception_handling   s    %&9:	F
 $<  ] 	@/ ] )7(() ) )    :o.-???	@ 	@ 	@ 	,,^<s?   A?
AAA	AA?	A A?A  A??Bc                     t        d      5  t               J t        d       t               dk(  sJ 	 d d d        y # 1 sw Y   y xY w)NTr   user123)r   r   r	   r   s    r   test_identify_contextz TestScopes.test_identify_context   sI    t$ 	:*,444 Y'*,	999	: 	: 	:	   '>Ac                     t        d      5  t               J t        d       t               dk(  sJ 	 d d d        y # 1 sw Y   y xY w)NTr   
session456)r   r   r
   r   s    r   test_set_context_sessionz#TestScopes.test_set_context_session   sI    t$ 	<)+333  -)+|;;;	< 	< 	<rX   c                 $   t        d      5  t        d       t        d       t        d      5  t               J t	               J 	 d d d        t               dk(  sJ t	               dk(  sJ 	 d d d        y # 1 sw Y   1xY w# 1 sw Y   y xY w)NTr   rV   rZ   r   r	   r
   r   r   r   s    r   &test_context_inheritance_fresh_contextz1TestScopes.test_context_inheritance_fresh_context   s    t$ 	<Y'-4( 8.0888-/7778 +,	999)+|;;;	< 	<8 8		< 	<s"   #BA:
&B:B	?BBc                    t        d      5  t        d       t        d       t        d      5  t               dk(  sJ t	               dk(  sJ t        d       t        d       t               dk(  sJ t	               dk(  sJ 	 d d d        t               dk(  sJ t	               dk(  sJ 	 d d d        y # 1 sw Y   1xY w# 1 sw Y   y xY w)NTr   rV   rZ   Fuser789
session999r]   r   s    r   *test_context_inheritance_non_fresh_contextz5TestScopes.test_context_inheritance_non_fresh_context   s    t$ 	<Y'-5) 	@.0I===-/<??? !+#L1.0I===-/<???	@ +,	999)+|;;;#	< 	<	@ 	@		< 	<s#   #C AB4&C 4B=	9C  C	c                     t               d        } |       \  }}|dk(  sJ |dk(  sJ t               J t               J y )Nc                  V    t        d       t        d       t               t               fS )Nuser456
session789)r	   r
   r   r    r   r   function_with_contextzPTestScopes.test_scoped_decorator_with_context_ids.<locals>.function_with_context   s$    Y'-*,.D.FFFr   re   rf   )r   r   r   )r   rh   distinct_id
session_ids       r   &test_scoped_decorator_with_context_idsz1TestScopes.test_scoped_decorator_with_context_ids   sc    		G 
	G
 #8"9Zi'''\))) '(000%'///r   N)__name__
__module____qualname__r   r   r    r&   r-   r   r9   rL   rT   rW   r[   r^   rb   rk   rg   r   r   r   r      s    %$246" &'  ( $ &'  ( 2 &'= (=6:<<<(0r   r   )unittestunittest.mockr   posthog.scopesr   r   r   r   r   r	   r
   r   r   TestCaser   rg   r   r   <module>rs      s.     
 
 
K0"" K0r   