+
     [;i  c                   s    ^RI 5 ^ RIHt ^ RIHtHt  ^ RIHtHt Rt	 ! R R]P                  4      t]R	8X  d   ]P                  4        R
# R
#    ^ RI
HtHt Rt	 L>; i)   )Z*)DATA_DIR)RulesRule)patch	mock_openzbuiltins.openz__builtin__.openc                   sf   a  ] tR t^t o ]R 4       tR tR tR tR t	R t
R tR tR	 tR
 tRtV tR# )	TestRulesc                s    \         P                   Uu. uF"  pVP                  \        4      '       g   K   VNK$  	  upV n        R # u upi N)r   DEFINITIONSZ
startswithr   )Zclsx   & </usr/lib/python3.14/site-packages/tracer/tests/test_rules.py
setUpClassZTestRules.setUpClass   s:     % 1 1 $ 11LL" Q 1 $#/ $s
   AAc                sF    V P                   \        n         R \        n        R # r   )r   r   Z_rulesself   &r   setUpZTestRules.setUp   s    &&%%,    c                sj    \         P                  ! 4        F  pV P                  V\        4       K  	  R # r   )r   allZassertIsInstancer   r   Zruler
   r   test_rules_typesZTestRules.test_rules_types   s"    iikdt$ r   c                s   ^p\         P                  ! 4        F  pRV9  g   RV9  d"   V P                  R\        V4      ,           4       VP                  \         P
                  P                  4       9  d#   V P                  RVP                  ,           4       \        V4      ^8  d#   V P                  RVP                  ,           4       V^,          pK  	  R# )r    nameactionzMissing attributes in rule #zUnknown action in rule: z Unsupported attributes in rule: N)	r   r   failstrr   ZACTIONSZvaluesr   len)r   Zir   &  r   test_rules_attributesZTestRules.test_rules_attributes   s    !99;aQHA-II,s1v56hhemm**,,II(16612	!fqjII01669:61 r   c                s    \         P                  ! 4       pV F=  pVP                  V4      ^8  g   K  V P                  RVP                  ,           4       K?  	  R# )r    zDuplicate rules for: N)r   r   countr   r   )r   rulesr   r   r   test_rules_duplicityZTestRules.test_rules_duplicity*   s=    
))+%akk!nqII%./ r   c                sP    V P                  \        P                  ! R 4      4       R# )ZNON_EXISTING_APPLICATIONN)ZassertIsNoner   Zfindr   r   r   test_app_with_no_ruleZTestRules.test_app_with_no_rule0   s    EJJ9:;r   c                s    \        R R/4      pV P                  \        V4      R4       V P                  \        V4      R4       R# )r   fooz<Rule: foo>N)r   assertEqualr   Zreprr   r
   r   test_representationsZTestRules.test_representations3   s8    	vuo	$3t9m,4:}-r   c                s    \        R RRR/4      p\        R RRR/4      pVP                  V4       V P                  VP                  R4       R# )r   r!   r   barZbazN)r   Zupdater"   r   )r   Zr1Zr2r   r   test_updateZTestRules.test_update8   sG    VUHe,-"VUHe,-"))B-299e$r   c                sL   R.\         n        Rp\        \        \	        VR7      4      ;_uu_ 4        \         P
                  ! 4       pV P                  \        V4      ^4       T P                  \        V Uu. uF  p\        V\        4      NK  	  up4      4       V P                  V^ ,          P                  R4       V P                  V^ ,          P                  R4       V P                  V^,          P                  R4       RRR4       R# u upi   + '       g   i     R# ; i)z+
Test parsing a single XML file with rules
zwhatever-file.xmlzM<rules>    <rule name='foo' action='return' />    <rule name='bar' /></rules>)Z	read_datar!   Zreturnr$   N)r   r   r   builtins_openr   r   r"   r   Z
assertTrueZ
isinstancer   r   r   )r   Zdatar   r	   s   &   r   	test_loadZTestRules.test_load?   s     ++%  ]I56699;5CJ"??3U;U
1d+U;<=E!HMM5)E!HOOX.E!HMM5) 76 < 766s   AD6DA4DDD#	c                sT    ^ pV F  pVP                   V8X  g   K  V^,          pK!  	  V# )i    )r   )r   Zapp_nameZappsr   Zas   &&&  r   _countZTestRules._countR   s-    
%aff	QJE  
,r    N)__name__Z
__module__Z__qualname__Z__firstlineno__Zclassmethodr   r   r   r   r   r    r#   r%   r'   r(   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      sI     $ $%
0<.
%*& r   r   Z__main__N)Z__meta__Ztracer.pathsr   Ztracer.resources.rulesr   r   Zunittest.mockr   r   r&   ZmockZunittestZTestCaser   r*   Zmainr)   r   r   <module>r+      sX     ! .$+ J!! JZ z	 e$"#s   
A A