
    \j3                     h    d dl mZ d dlZd dlZd Zd Z G d d      Z G d d      Z G d	 d
      Zy)    )ContextNc                 @    | j                   du sJ | j                  J y )NTvaliderrorcs    >/root/env/lib/python3.12/site-packages/testing/test_context.pyassert_context_validr      s     77d??77??    c                 @    | j                   du sJ | j                  J y )NFr   r   s    r
   assert_context_invalidr      s$    77e77r   c                   x    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zy)TestContextc                    t        j                  d      }t        |       |j                  du sJ |j                  dk(  sJ |j
                  dk(  sJ |j                  J |j                  du sJ t        |j                        g k(  sJ y NaFuser
r   creater   multiplekeykindname	anonymouslistcustom_attributesselfr	   s     r
   test_create_default_kindz$TestContext.test_create_default_kind   s    NN3QzzU"""uu||vvvv~~{{e###A''(B...r   c                    t        j                  dd      }t        |       |j                  du sJ |j                  dk(  sJ |j
                  dk(  sJ |j                  J |j                  du sJ t        |j                        g k(  sJ y Nr   bFr   r   s     r
   test_create_non_default_kindz(TestContext.test_create_non_default_kind   s    NN3$QzzU"""uu||vv}}vv~~{{e###A''(B...r   c                 4   t        j                  d      j                         }t        |       |j                  du sJ |j
                  dk(  sJ |j                  dk(  sJ |j                  J |j                  du sJ t        |j                        g k(  sJ y r   )r   builderbuildr   r   r   r   r   r   r   r   r   s     r
   test_builder_default_kindz%TestContext.test_builder_default_kind%   s    OOC &&(QzzU"""uu||vvvv~~{{e###A''(B...r   c                 R   t        j                  d      j                  d      j                         }t	        |       |j
                  du sJ |j                  dk(  sJ |j                  dk(  sJ |j                  J |j                  du sJ t        |j                        g k(  sJ y r"   )r   r&   r   r'   r   r   r   r   r   r   r   r   s     r
   test_builder_non_default_kindz)TestContext.test_builder_non_default_kind/   s    OOC %%c*002QzzU"""uu||vv}}vv~~{{e###A''(B...r   c                     t        j                  d      j                  d      j                         }t	        |       |j
                  dk(  sJ |j                  dk(  sJ t        |j                        g k(  sJ y Nr   r#   )r   r&   r   r'   r   r   r   r   r   s     r
   	test_namezTestContext.test_name9   se    OOC %%c*002Quu||vv}}A''(B...r   c                     t        j                  d      j                  d      j                         }t	        |       |j
                  dk(  sJ |j                  sJ t        |j                        g k(  sJ y Nr   T)r   r&   r   r'   r   r   r   r   r   s     r
   test_anonymouszTestContext.test_anonymous@   sa    OOC **40668Quu||{{{A''(B...r   c                    t        j                  d      j                  dd      j                  dd      j                         }t	        |       |j
                  dk(  sJ |j                  d      du sJ |j                  d      dk(  sJ |d   du sJ |d   dk(  sJ t        t        |j                              ddgk(  sJ y )Nr   r#   Tr	   d)
r   r&   setr'   r   r   getsortedr   r   r   s     r
   test_custom_attributesz"TestContext.test_custom_attributesG   s    OOC $$S$/33C=CCEQuu||uuSzT!!!uuSzS   v~~v}}d1../0S#J>>>r   c                 b   t        j                  d      j                  dd      j                  dd      j                  dd      j                  dd	      j                         }t	        |       |j
                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  sJ y )
N r   r   r   r#   r   r	   r   T)	r   r&   r3   r'   r   r   r   r   r   r   s     r
   #test_set_built_in_attribute_by_namez/TestContext.test_set_built_in_attribute_by_nameQ   s    OOB##E3/33FC@DDVSQUUVacghnnpQuu||vv}}vv}}{{{r   c                    t        j                  d      j                  d      j                  d      j	                  d      }|j                  dd       du sJ |j                  dd      du sJ |j                         j                  dk(  sJ |j                  dd       du sJ |j                  dd      du sJ |j                         j                  dk(  sJ |j                  d	d      du sJ |j                         j                  dk(  sJ |j                  d
d       du sJ |j                  d
d      du sJ |j                         j                  du sJ y )Nr   r#   r	   Tr   F   r   r   r   )r   r&   r   r   r   try_setr'   r   )r   r#   s     r
   1test_set_built_in_attribute_by_name_type_checkingz=TestContext.test_set_built_in_attribute_by_name_type_checkingY   sB   OOC %%c*//4>>tDyy%...yy"e+++wwy}}###yy&%///yy#u,,,wwy~~$$$yy#u,,,wwy~~$$$yyd+u444yya(E111wwy""d***r   c                 R   t        j                  d      j                  d      j                  d      j	                  d      j                         }|j                  d      dk(  sJ |j                  d      dk(  sJ |j                  d      dk(  sJ |j                  d      du sJ y )	Nr   r#   r	   Tr   r   r   r   )r   r&   r   r   r   r'   r4   r   s     r
   #test_get_built_in_attribute_by_namez/TestContext.test_get_built_in_attribute_by_namek   s    OOC %%c*//4>>tDJJLuuU|s"""uuV}###uuV}###uu[!T)))r   c                 T    t        j                  d      }|j                  d      J y r,   )r   r   r4   r   s     r
   test_get_unknown_attributez&TestContext.test_get_unknown_attributer   s$    NN3uuSz!!!r   c                    t        t        j                  d      j                        g k(  sJ t        j                  d      j                  dd      j                  d      j                         }t        |j                        g dk(  sJ y )Nr   r#   /c/de)r#   rC   rD   )r   r   r   private_attributesr&   privater'   r   s     r
   test_private_attributesz#TestContext.test_private_attributesv   sm    GNN3'::;rAAAOOC ((f5==cBHHJA(()-????r   c                     t        j                  d      j                  dk(  sJ t        j                  dd      j                  dk(  sJ t        j                  dd      j                  dk(  sJ y )Nkey1kind1z
kind1:key1zkey%with:thingszkind1:key%25with%3Athings)r   r   fully_qualified_keyr   s    r
   test_fully_qualified_keyz$TestContext.test_fully_qualified_key|   s_    ~~f%99VCCC~~fg.BBlRRR~~/9MMQllllr   c                    t        j                  d      j                  d      j                  d      j	                  dd      j                  d      j                         }t        j                  |      }|j                         |k(  sJ |j	                  dd       |j                         }||k7  sJ |j                  d      du sJ |j                  d      du sJ y )Nr   rJ   r#   r	   Tr2   F)	r   r&   r   r   r3   rF   r'   builder_from_contextr4   )r   c1r#   c2s       r
   test_builder_from_contextz%TestContext.test_builder_from_context   s    __S!&&w/44S9==c4HPPQTU[[]((,wwyB	c5WWYRxxvvc{d"""vvc{e###r   c                 	   d } |d         |d         |d         |d         |d        t        j                  d      j                  dd	      j                  d
d      j                         t        j                  d      j                  d
d      j                  dd	      j                         k(  sJ t        j                  dd      t        j                  dd      k7  sJ t        j                  dd      t        j                  dd      k7  sJ t        j                  d      j                  d      j                         t        j                  d      j                  d
      j                         k7  sJ t        j                  d      j                  d	      j                         t        j                  d      j                         k7  sJ t        j                  d      j                  dd	      j                         t        j                  d      j                  dd      j                         k7  sJ t        j                  d      j                  dd	      j                         t        j                  d      j                  dd	      j                  d
d      j                         k7  sJ  |d        t        j                  t        j                  dd      t        j                  dd            t        j                  t        j                  dd      t        j                  dd            k(  sJ t        j                  t        j                  dd      t        j                  dd            t        j                  t        j                  dd      t        j                  d
d            k7  sJ t        j                  t        j                  dd      t        j                  dd      t        j                  d
d            t        j                  t        j                  dd      t        j                  dd            k7  sJ t        j                  t        j                  dd      t        j                  dd            t        j                  dd      k7  sJ  |d        t        j                  dd      t        j                         k7  sJ y )Nc                 .     |         |        }}||k(  sJ y N )fnrP   rQ   s      r
   #_assert_contexts_from_factory_equalzFTestContext.test_equality.<locals>._assert_contexts_from_factory_equal   s    T24B8O8r   c                  ,    t        j                  d      S Nr   r   r   rV   r   r
   <lambda>z+TestContext.test_equality.<locals>.<lambda>   s    GNN34G r   c                  .    t        j                  dd      S )Nr   rJ   r[   rV   r   r
   r\   z+TestContext.test_equality.<locals>.<lambda>   s    GNN34P r   c                  f    t        j                  d      j                  d      j                         S r,   )r   r&   r   r'   rV   r   r
   r\   z+TestContext.test_equality.<locals>.<lambda>   s#    GOOC4H4M4Mc4R4X4X4Z r   c                  f    t        j                  d      j                  d      j                         S r/   )r   r&   r   r'   rV   r   r
   r\   z+TestContext.test_equality.<locals>.<lambda>   s$    GOOC4H4R4RSW4X4^4^4` r   c                      t        j                  d      j                  dd      j                  dd      j                         S )Nr   r#   Tr	   r;   )r   r&   r3   r'   rV   r   r
   r\   z+TestContext.test_equality.<locals>.<lambda>   s5    GOOC4H4L4LSRV4W4[4[\_ab4c4i4i4k r   r   r#   Tr	   r;   rJ   kind2Fc                  ~    t        j                  t        j                  dd      t        j                  dd            S Nr   rJ   r#   ra   )r   create_multir   rV   r   r
   r\   z+TestContext.test_equality.<locals>.<lambda>   s.      W!=w~~cSZ?[\ r   kind3c                  .    t        j                  dd      S )Ninvalidr   r[   rV   r   r
   r\   z+TestContext.test_equality.<locals>.<lambda>   s    GNN9f4U r   rg   r   )r   r&   r3   r'   r   r   r   rd   )r   rX   s     r
   test_equalityzTestContext.test_equality   s   	 	,,GH+,PQ+,Z[+,`a+,kls#''T266sA>DDFOOC $$S!,00d;AACD 	D D ~~c7+w~~c7/KKKK~~c7+w~~c7/KKKKs#((-3359M9R9RSV9W9]9]9____s#--d399;ws?S?Y?Y?[[[[s#''T288:gooc>R>V>VWZ\a>b>h>h>jjjjs#''T288:OOC $$S$/33C?EEGH 	H H 	, -] 	^##GNN3$@'..QTV]B^_  W!=w~~cSZ?[\] 	] ] ##GNN3$@'..QTV]B^_  W!=w~~cSZ?[\] 	] ]##GNN3$@'..QTV]B^`g`n`nort{`|}  W!=w~~cSZ?[\] 	] ]##GNN3$@'..QTV]B^_NN3() 	) ) 	,,UV~~i0G4H4H4JJJJr   c                 v   t        j                  dd      j                         dddk(  sJ t        j                  d      j	                  d      j                  d      j                         j                         ddddk(  sJ t        j                  d      j	                  d      j                  d      j                         j                         ddddk(  sJ t        j                  d      j	                  d      j                  dd      j                  dd	      j                         j                         dddd	d
k(  sJ t        j                  d      j	                  d      j                  d      j                         j                         ddddgidk(  sJ t        j                  t        j                  dd      t        j                  dd            j                         dddiddidk(  sJ t        j                  t        j                  dd      j                               dddk(  sJ y )Nr   rJ   r   r   r#   r   r   r   Tr   r   r   r	   r;   )r   r   r#   r	   privateAttributesr   r   _metarI   key2ra   multir   r   rJ   ra   )r   r   to_dictr&   r   r   r'   r   r3   rF   rd   jsonloadsto_json_stringrL   s    r
   test_json_encodingzTestContext.test_json_encoding   s   ~~c7+335'RU9VVVVs#((166s;AACKKMS#67 	7 7s#((1;;DAGGIQQSSt<= 	= =s#((155c4@DDS!LRRT\\^St!<= 	= =s#((199#>DDFNNPS4G#3OPQ 	Q Q ##GNN67$CW^^TZ\cEdemmov%QR 	R R zz'..g6EEGHU\ehLiiiir   c                 Z   t        j                  ddd      t        j                  dd      k(  sJ t        j                  dddd      t        j                  d      j	                  d      j                  d      j                         k(  sJ t        j                  dddd      t        j                  d      j	                  d      j                  d      j                         k(  sJ t        j                  dddd	gid
      t        j                  d      j	                  d      j                  d	      j                         k(  sJ t        j                  dddiddid      t        j                  t        j                  dd      t        j                  dd            k(  sJ t        t        j                  ddi             t        t        j                  ddd             t        t        j                  ddi             t        t        j                  ddd             y )NrJ   rI   rj   r   rk   Trl   rm   r#   rn   rq   r   rp   rr   ra   r   r;   x)r   rJ   )r   	from_dictr   r&   r   r   r'   r   rF   rd   r   rL   s    r
   test_json_decodingzTestContext.test_json_decoding   s     '&!ABgnnU[]dFeeee  '&#!NOOOF#((166s;AACD 	D D  '&t!TUOOF#((1;;DAGGIJ 	J J  '&L_beafKg!hiOOF#((199#>DDFG 	G G   'UFOW\^dVe!fg  !@'..QWY`Babc 	c c 	w00&'1BCDw00'!1LMNw00&'1BCDw00'C1PQRr   c                    t        j                  ddi      t        j                  dd      k(  sJ t        j                  ddd      t        j                  d      j	                  d      j                         k(  sJ t        j                  dddid      t        j                  d      j                  dd      j                         k(  sJ t        t        j                  ddi             t        t        j                  i              t        t        j                  dd i             t        t        j                  dd	i             t        t        j                  d
d	d             y )Nr   rI   r   r#   )r   r   T)r   customr8   r;   r   )	r   rz   r   r&   r   r'   r3   r   r   rL   s    r
   test_json_decoding_old_userz'TestContext.test_json_decoding_old_user   s!     %1W^^FF5SSSS  !=>'//RXBYB^B^_bBcBiBiBkkkk  C;!GHOOF#''T288:; 	; ; 	W..r{;<w0045w00%?@w00%<=w00a1HIJr   N)__name__
__module____qualname__r    r$   r(   r*   r-   r0   r6   r9   r=   r?   rA   rG   rM   rR   rh   rw   r{   r~   rV   r   r
   r   r      sc    //////?+$*"@m
$!KFj S"
Kr   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestContextMultic                    t        j                  dd      }t        j                  dd      }t        j                  ||      }|j                  sJ |j                  sJ |j
                  dk(  sJ |j                  dk(  sJ |j                  J |j                  du sJ |j                  dk(  sJ |j                  d	      |u sJ |j                  d
      |u sJ |j                  d      J |j                  d      J y )Nr   rJ   r#   ra   rq   r8   F   r      )r   r   rd   r   r   r   r   r   r   individual_context_countget_individual_contextr   rP   rQ   mcs       r
   test_create_multiz"TestContextMulti.test_create_multi   s   ^^C)^^C)!!"b)xxx{{{ww'!!!vv||ww||u$$$**a///((+r111((+r111((,444((+333r   c                    t        j                  dd      }t        j                  dd      }t        j                  dd      }t        j                  ||      }t        j                  ||      }|t        j                  |||      k(  sJ y Nr   rJ   r#   ra   r	   re   )r   r   rd   r   rP   rQ   c3c2plus3r   s         r
   /test_create_multi_flattens_nested_multi_contextz@TestContextMulti.test_create_multi_flattens_nested_multi_context   ss    ^^C)^^C)^^C)&&r2.!!"g.W))"b"5555r   c                    t        j                  dd      }t        j                  dd      }t        j                         j                  |      j                  |      j	                         }|t        j
                  ||      k(  sJ y rc   )r   r   multi_builderaddr'   rd   r   s       r
   test_multi_builderz#TestContextMulti.test_multi_builder   sj    ^^C)^^C)""$((,004::<W))"b1111r   c                 l   t        j                  dd      }t        j                  dd      }t        j                  dd      }t        j                  ||      }t        j                         j	                  |      j	                  |      j                         }|t        j                  |||      k(  sJ y r   )r   r   rd   r   r   r'   r   s         r
   0test_multi_builder_flattens_nested_multi_contextzATestContextMulti.test_multi_builder_flattens_nested_multi_context   s    ^^C)^^C)^^C)&&r2.""$((,009??AW))"b"5555r   c                     t        j                  dd      }t        j                  dd      }t        j                  ||      }|j                  dk(  sJ y )Nr   rJ   r#   ra   zkind1:a:kind2:b)r   r   rd   rK   r   s       r
   test_multi_fully_qualified_keyz/TestContextMulti.test_multi_fully_qualified_key  sI    ^^C)^^C)!!"b)%%)::::r   N)r   r   r   r   r   r   r   r   rV   r   r
   r   r      s    4"626;r   r   c                   ~    e Zd Zd Zej
                  j                  dg d      d        Zd Zd Z	d Z
d Zd	 Zd
 Zy)TestContextErrorsc                     t        t        j                  d             t        t        j                  d      j	                                y )Nr8   )r   r   r   r&   r'   rL   s    r
   test_key_empty_stringz'TestContextErrors.test_key_empty_string  s-    w~~b12wr288:;r   r   )r   rq   zb$cr8   c                     t        t        j                  d|             t        t        j                  d      j	                  |      j                                y rZ   )r   r   r   r&   r   r'   )r   r   s     r
   test_kind_invalid_stringsz+TestContextErrors.test_kind_invalid_strings  s:    w~~c489ws388>DDFGr   c                 >    t        t        j                                y rU   )r   r   rd   rL   s    r
   "test_create_multi_with_no_contextsz4TestContextErrors.test_create_multi_with_no_contexts  s    w3356r   c                 Z    t        t        j                         j                                y rU   )r   r   r   r'   rL   s    r
   #test_multi_builder_with_no_contextsz5TestContextErrors.test_multi_builder_with_no_contexts  s    w446<<>?r   c                     t        j                  dd      }t        j                  dd      }t        t        j                  ||             y Nr   rJ   r#   r   r   r   rd   r   rP   rQ   s      r
   %test_create_multi_with_duplicate_kindz7TestContextErrors.test_create_multi_with_duplicate_kind  s7    ^^C)^^C)w33B;<r   c                     t        j                  dd      }t        j                  dd      }t        t        j                         j	                  |      j	                  |      j                                y r   r   r   r   r   r   r'   r   s      r
   &test_multi_builder_with_duplicate_kindz8TestContextErrors.test_multi_builder_with_duplicate_kind   sR    ^^C)^^C)w446::2>BB2FLLNOr   c                     t        j                  dd      }t        j                  d      }t        t        j                  ||             y Nr   rJ   r8   r   r   s      r
   &test_create_multi_with_invalid_contextz8TestContextErrors.test_create_multi_with_invalid_context%  s5    ^^C)^^Bw33B;<r   c                     t        j                  dd      }t        j                  d      }t        t        j                         j	                  |      j	                  |      j                                y r   r   r   s      r
   'test_multi_builder_with_invalid_contextz9TestContextErrors.test_multi_builder_with_invalid_context*  sP    ^^C)^^Bw446::2>BB2FLLNOr   N)r   r   r   r   pytestmarkparametrizer   r   r   r   r   r   r   rV   r   r
   r   r     sQ    < [[V%ABH CH7@=
P
=
Pr   r   )	ldclient.contextr   rt   r   r   r   r   r   r   rV   r   r
   <module>r      s>    $  
IK IKX,; ,;^"P "Pr   