
    jKj{                         d dl Z d dl mZ d dlmZ d dlZd dlmZ  G d de j
                        Z G d de j
                        Z G d	 d
e j
                        Zy)    N)mock)parameterized)Posthogc                   :    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
y)	
TestModuleNc                 H    | j                  t        |d         t               y )Nr   )assertEqualtypestr)selfresults     i/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/posthog/test/test_module.py_assert_enqueue_resultz!TestModule._assert_enqueue_result   s    fQi#.    c                     d| _         y )NT)failedr   s    r   r   zTestModule.failed   s	    r   c                 L    d| _         t        dd| j                         | _        y )NF
testsecretzhttp://localhost:8000)hoston_error)r   r   posthogr   s    r   setUpzTestModule.setUp   s!    6
r   c                     | j                   j                  dd      }| j                  |       | j                   j                          y )Nzpython module eventdistinct_idr   )r   capturer   flushr   ress     r   
test_trackzTestModule.test_track   s:    ll""#8m"T##C(r   c                     | j                   j                  dd      }| j                  |       | j                   j                          y )N
previousIdr   )r   aliasr   r   r   s     r   
test_aliaszTestModule.test_alias   s6    ll  }=##C(r   c                 8    | j                   j                          y N)r   r   r   s    r   
test_flushzTestModule.test_flush#   s    r   c                     t         j                  j                  t        d      5 }t        j                  d       d d d        j                  dd       y # 1 sw Y   xY w)N_proxyg      ?)timeout_secondsr   )r   patchobjectr   r   assert_called_once_with)r   proxys     r   "test_module_flush_forwards_timeoutz-TestModule.test_module_flush_forwards_timeout&   sG    ZZw1UMM#. 2 	%%gs%C 21s   AA!)__name__
__module____qualname__r   r   r   r   r!   r%   r(   r0    r   r   r   r   
   s+    G/


Dr   r   c                   L    e Zd Zd Zd Z ej                  g d      d        Zy)TestModuleLevelSetupc                     t         j                  | _        t         j                  | _        t         j
                  | _        t         j                  | _        d t         _        dt         _        dt         _        y )NF)	r   default_client_original_default_clientapi_key_original_api_keydisabled_original_disabledsend_original_sendr   s    r   r   zTestModuleLevelSetup.setUp.   sM    (/(>(>%!(")"2"2%ll!% r   c                     | j                   t        _        | j                  t        _        | j
                  t        _        | j                  t        _        y r'   )	r9   r   r8   r;   r:   r=   r<   r?   r>   r   s    r   tearDownzTestModuleLevelSetup.tearDown7   s8    !%!>!>0022**r   ))unsetN)empty )
whitespacez 
	 c                 <   |t         _        t        j                         }| j                  |t         j                         | j                  |j                  d       | j                  |j                         | j                  t        j                  dd             y )NrD   zModule Python Eventjohnr   )
r   r:   setupassertIsr8   r	   
assertTruer<   assertIsNoner   )r   _namer:   clients       r   ;test_setup_configures_disabled_client_when_api_key_is_blankzPTestModuleLevelSetup.test_setup_configures_disabled_client_when_api_key_is_blank=   sh     "fg445,('//*?VTUr   N)r1   r2   r3   r   rA   r   expandrN   r4   r   r   r6   r6   -   s4    + ]	

V
Vr   r6   c                       e Zd ZdZd Zd Zd Zd Z ej                  ddg      d        Z
 ej                  ddg      d	        Zy
)TestModuleLevelWrappersz}Test that module-level wrapper functions in posthog/__init__.py
    correctly propagate all parameters to the Client methods.c                     t        j                         | _        t        j                  | _        | j                  t        _        y r'   )r   	MagicMockmock_clientr   r8   _original_clientr   s    r   r   zTestModuleLevelWrappers.setUpU   s-    >>+ ' 6 6!%!1!1r   c                 .    | j                   t        _        y r'   )rU   r   r8   r   s    r   rA   z TestModuleLevelWrappers.tearDownZ   s    !%!6!6r   c           	          t        j                  ddddid       | j                  j                  j                  ddddid d d d       y )Ncompanycompany_123namezAwesome Inc.user_456r   )
group_type	group_key
properties	timestampuuiddisable_geoipr   )r   group_identifyrT   r.   r   s    r   *test_group_identify_propagates_distinct_idzBTestModuleLevelWrappers.test_group_identify_propagates_distinct_id]   s]    ^$"		
 	''?? #/" 	@ 	
r   c                     t        j                  dd       | j                  j                  j                  d   }| j	                  |d          y )NrX   rY      r   )r   rb   rT   	call_argsrK   )r   call_kwargss     r   0test_group_identify_distinct_id_defaults_to_nonezHTestModuleLevelWrappers.test_group_identify_distinct_id_defaults_to_nonen   sA    y-8&&55??B+m45r   )get_all_flagsri   )get_all_flags_and_payloadsrj   c                     t        t        |      } |dddg       t        | j                  |      j                  d   }| j	                  |d   ddg       y )Nuser_123zflag-1zflag-2)flag_keys_to_evaluatere   rm   )getattrr   rT   rf   r	   r   rL   method_namefnrg   s        r   %test_flag_keys_to_evaluate_propagatedz=TestModuleLevelWrappers.test_flag_keys_to_evaluate_propagateds   sW     Wk*
:h-ABd..<FFqI%<=(?STr   c                     t        t        |      } |d       t        | j                  |      j                  d   }| j	                  |d          y )Nrl   re   rm   )rn   r   rT   rf   rK   ro   s        r   +test_flag_keys_to_evaluate_defaults_to_nonezCTestModuleLevelWrappers.test_flag_keys_to_evaluate_defaults_to_none   sH     Wk*
:d..<FFqI+&=>?r   N)r1   r2   r3   __doc__r   rA   rc   rh   r   rO   rr   rt   r4   r   r   rQ   rQ   Q   sx    A2
7
"6
 ].H	
UU ].H	
@@r   rQ   )	unittestr   r   r   r   TestCaser   r6   rQ   r4   r   r   <module>rx      sR      '   D""  DF!V8,, !VH8@h// 8@r   