ó
œyNYˆ>  c           @   sš  d  d l  Z d  d l j j Z d  d l Z d  d l m Z	 d  d l m
 Z
 d  d l m Z d  d l m Z d  d l 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  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 S(&   iÿÿÿÿN(   t
   exceptions(   t   fstree(   t   parse_rules(   t   startupc         C   s)   t  g  |  D] } | j | j f ^ q
 ƒ S(   sB   Return a set of (rownum, pos) tuples from the PatternLocs supplied(   t   sett   rownumt   pos(   t   plst   pl(    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   patlocs_to_tuples   s    c          C   s  t  j }  d } |  | ƒ } d g } | | k } | sû t j d | f d | | f ƒ i t j |  ƒ d 6t j | ƒ d 6d t j ƒ  k s˜ t j t  ƒ r§ t j t  ƒ n d d 6t j | ƒ d 6t j | ƒ d	 6} d i | d 6} t t j	 | ƒ ƒ ‚ n  d }  } } } } d S(   s9   Does breaking a string with no version an no parens work?t   words   ==s\   %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.breakon_version_parens
}(%(py4)s)
} == %(py9)st   py2t   py9R   t   py0t   py6t   py4t    s   assert %(py11)st   py11N(   s   ==(   s\   %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.breakon_version_parens
}(%(py4)s)
} == %(py9)ss   assert %(py11)s(   R   t   breakon_version_parenst
   @pytest_art   _call_reprcomparet	   _safereprt   @py_builtinst   localst   _should_repr_global_namet   AssertionErrort   _format_explanationt   None(   t   @py_assert1t   @py_assert3t   @py_assert5t   @py_assert8t   @py_assert7t   @py_format10t   @py_format12(    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt!   test_breakon_version_parens_plain'   s    	   	   œ   c          C   s  t  j }  d } |  | ƒ } d d g } | | k } | sþ t j d | f d | | f ƒ i t j |  ƒ d 6t j | ƒ d 6d t j ƒ  k s› t j t  ƒ rª t j t  ƒ n d d	 6t j | ƒ d
 6t j | ƒ d 6} d i | d 6} t t j	 | ƒ ƒ ‚ n  d }  } } } } d S(   s2   Does breaking a string with a version number work?s   word v5R
   s    v5s   ==s\   %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.breakon_version_parens
}(%(py4)s)
} == %(py9)sR   R   R   R   R   R   R   s   assert %(py11)sR   N(   s   ==(   s\   %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.breakon_version_parens
}(%(py4)s)
} == %(py9)ss   assert %(py11)s(   R   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R   R    R!   R"   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt#   test_breakon_version_parens_version,   s    	      œ   c          C   s  t  j }  d } |  | ƒ } d d g } | | k } | sþ t j d | f d | | f ƒ i t j |  ƒ d 6t j | ƒ d 6d t j ƒ  k s› t j t  ƒ rª t j t  ƒ n d d	 6t j | ƒ d
 6t j | ƒ d 6} d i | d 6} t t j	 | ƒ ƒ ‚ n  d }  } } } } d S(   s<   Does breaking a string with a version number and paren work?s   word v5 (paren)R
   s    v5 (paren)s   ==s\   %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.breakon_version_parens
}(%(py4)s)
} == %(py9)sR   R   R   R   R   R   R   s   assert %(py11)sR   N(   s   ==(   s\   %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.breakon_version_parens
}(%(py4)s)
} == %(py9)ss   assert %(py11)s(   R   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R   R    R!   R"   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt)   test_breakon_version_parens_version_paren1   s    	      œ   c          C   s  t  j }  d } |  | ƒ } d d g } | | k } | sþ t j d | f d | | f ƒ i t j |  ƒ d 6t j | ƒ d 6d t j ƒ  k s› t j t  ƒ rª t j t  ƒ n d d	 6t j | ƒ d
 6t j | ƒ d 6} d i | d 6} t t j	 | ƒ ƒ ‚ n  d }  } } } } d S(   s>   Does breaking a string with no version number and parens work?s   word (paren) (again)R
   s    (paren) (again)s   ==s\   %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.breakon_version_parens
}(%(py4)s)
} == %(py9)sR   R   R   R   R   R   R   s   assert %(py11)sR   N(   s   ==(   s\   %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.breakon_version_parens
}(%(py4)s)
} == %(py9)ss   assert %(py11)s(   R   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R   R    R!   R"   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt"   test_breakon_version_parens_parens7   s    	      œ   c          C   s2  t  j }  d } d g } |  | | ƒ } d } | | k } | st j d | f d | | f ƒ i t j |  ƒ d 6d t j ƒ  k s‘ t j t  ƒ r  t j t  ƒ n d d 6t j | ƒ d	 6t j | ƒ d
 6t j | ƒ d 6t j | ƒ d 6} d i | d 6} t t j	 | ƒ ƒ ‚ n  d }  } } } } } d S(   s$   Does re-assembly do the right thing?t   abct   deft   abcdefs   ==sZ   %(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.reassemble
}(%(py4)s, %(py6)s)
} == %(py11)sR   R   R   R   R   t   py8R   R   s   assert %(py13)st   py13N(   s   ==(   sZ   %(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.reassemble
}(%(py4)s, %(py6)s)
} == %(py11)ss   assert %(py13)s(   R   t
   reassembleR   R   R   R   R   R   R   R   R   (   R   R   R   R    t   @py_assert10t   @py_assert9R"   t   @py_format14(    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_reassemble=   s    	  	     ¬   c          C   sÂ   t  j t  j d ƒ }  |  j ƒ  |  j } | ƒ  } | s´ d d i t j | ƒ d 6d t j ƒ  k sr t j	 |  ƒ r t j |  ƒ n d d 6t j | ƒ d 6} t
 t j | ƒ ƒ ‚ n  d } } d S(	   s$   Can we set and detect the root node?t   patternR   sB   assert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.is_root
}()
}R   t   fsdirR   R   N(   R   t   FSDirt   DecisionTreet   set_roott   is_rootR   R   R   R   R   R   R   R   (   R2   R   R   t   @py_format5(    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_fsdir_is_root_trueG   s    
	 	  e  c          C   sÃ   t  j t  j d ƒ }  |  j } | ƒ  } | } | s± d d i t j | ƒ d 6d t j ƒ  k so t j |  ƒ r~ t j |  ƒ n d d 6t j | ƒ d 6} t	 t j
 | ƒ ƒ ‚ n  d } } } d S(	   s$   Are non-root nodes detected as such?R1   R   sF   assert not %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.is_root
}()
}R   R2   R   R   N(   R   R3   R4   R6   R   R   R   R   R   R   R   R   (   R2   R   R   R   t   @py_format6(    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_fsdir_is_root_falseN   s    	 	   e  c          C   st  t  j t  j d ƒ }  |  j d d ƒ |  j d d ƒ |  j d d ƒ |  j } t | ƒ } d } | | k } | s^t j d | f d | | f ƒ i t j | ƒ d
 6d t	 j
 ƒ  k sÄ t j |  ƒ rÓ t j |  ƒ n d d 6d t	 j
 ƒ  k sû t j t ƒ r
t j t ƒ n d d 6t j | ƒ d 6t j | ƒ d 6} d i | d 6} t t j | ƒ ƒ ‚ n  d } } } } d S(   s%   Are child nodes retained as expected?R1   i   t   firsti   t   secondi   t   thirds   ==sN   %(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.children
})
} == %(py8)st   py3R2   t   py1t   lenR   R*   t   py5R   s   assert %(py10)st   py10N(   s   ==(   sN   %(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.children
})
} == %(py8)ss   assert %(py10)s(   R   R3   R4   t	   add_childt   childrenR@   R   R   R   R   R   R   R   R   R   (   R2   t   @py_assert2t   @py_assert4R    t   @py_assert6t   @py_format9t   @py_format11(    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_fsdir_add_childT   s    	     Ã   c          C   sg  t  j t j d ƒ }  |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j } | j } d d d g } | | k } | sQt	 j
 d | f d | | f ƒ i t	 j | ƒ d
 6d t j ƒ  k sî t	 j |  ƒ rý t	 j |  ƒ n d d 6t	 j | ƒ d 6t	 j | ƒ d 6} d i | d 6} t t	 j | ƒ ƒ ‚ n  d } } } } d S(   s@   Is the list of directory content added and returned as expected?R1   i   R;   i   R<   i   R=   s   ==sO   %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.decision_tree
}.tree
} == %(py7)sR   R2   R   t   py7R   R   s   assert %(py9)sR   N(   i   s   first(   i   s   second(   i   s   third(   s   ==(   sO   %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.decision_tree
}.tree
} == %(py7)ss   assert %(py9)s(   R   R3   t   libtestt   MockTreet   add_contentt   decision_treeR   t   parsert   treeR   R   R   R   R   R   R   R   R   (   R2   R   R   RG   R   t   @py_format8R!   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_fsdir_get_patterns]   s    	 	    Œ   c          C   sµ  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j d ƒ \ } } } d } | | k } | s.t j	 d! | f d" | | f ƒ i t j
 | ƒ d 6d t j ƒ  k së t j | ƒ rú t j
 | ƒ n d d 6} d# i | d 6} t t j | ƒ ƒ ‚ n  d  } } | j ƒ  } t | ƒ } d }	 | |	 k }
 |
 sDt j	 d$ |
 f d% | |	 f ƒ i t j
 | ƒ d 6d t j ƒ  k sºt j | ƒ rÉt j
 | ƒ n d d 6d t j ƒ  k sñt j t ƒ r t j
 t ƒ n d d 6t j
 |	 ƒ d 6} d& i | d 6} t t j | ƒ ƒ ‚ n  d  } }
 }	 | j } d }
 | |
 k } | st j	 d' | f d( | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k sÅt j | ƒ rÔt j
 | ƒ n d d 6t j
 |
 ƒ d 6} d) i | d 6} t t j | ƒ ƒ ‚ n  d  } } }
 | j } d }
 | |
 k } | sìt j	 d* | f d+ | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k s™t j | ƒ r¨t j
 | ƒ n d d 6t j
 |
 ƒ d 6} d, i | d 6} t t j | ƒ ƒ ‚ n  d  } } }
 g  } | | k } | s§t j	 d- | f d. | | f ƒ i t j
 | ƒ d 6d t j ƒ  k sdt j | ƒ rst j
 | ƒ n d d 6} d/ i | d 6} t t j | ƒ ƒ ‚ n  d  } } d  S(0   s    Does a simple string match work?t   .i   R;   i   R<   i   R=   R   s   ==s   %(py0)s == %(py3)sR>   t	   unmatchedR   s   assert %(py5)sRA   i    s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)st   patlocsR?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sR   t   patlocs   assert %(py7)sRK   i   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)st   report_itemsN(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   t   invalidR   R   R   R   R   R   R   R   R   t   popR@   R   R   (   R2   RU   RV   RX   RE   R   t   @py_format4R9   RW   R   RF   t   @py_format7RH   R   RR   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_fsdir_invalid_matchg   sX       l   
    ³   	    |   	    |      l   c       	   C   sN   t  j t  j d ƒ }  t j t j ƒ ! |  j |  j t	 j
 d d ƒ Wd QXd S(   s   Are lexing errors detected?s   dir patterni   s   first(problem)N(   R   R3   R4   t   pytestt   raisest   ext	   ScanErrorRN   RO   R   RP   (   R2   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_fsdir_scan_errorv   s    c       	   C   sN   t  j t  j d ƒ }  t j t j ƒ ! |  j |  j t	 j
 d d ƒ Wd QXd S(   s#   Are yacc bad-token errors detected?s   dir patterni   s   first<problem>N(   R   R3   R4   R^   R_   R`   t
   ParseErrorRN   RO   R   RP   (   R2   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_fsdir_parse_error~   s    c       	   C   sN   t  j t  j d ƒ }  t j t j ƒ ! |  j |  j t	 j
 d d ƒ Wd QXd S(   s   Are yacc eof errors detected?s   dir patterni   s   first N(   R   R3   R4   R^   R_   R`   t   ParseEOFErrorRN   RO   R   RP   (   R2   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_fsdir_eof_error†   s    c          C   s¸  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j j d ƒ \ } } } d } | | k } | s1t j	 d! | f d" | | f ƒ i t j
 | ƒ d 6d t j ƒ  k sî t j | ƒ rý t j
 | ƒ n d d 6} d# i | d 6} t t j | ƒ ƒ ‚ n  d  } } | j ƒ  } t | ƒ } d }	 | |	 k }
 |
 sGt j	 d$ |
 f d% | |	 f ƒ i t j
 | ƒ d 6d t j ƒ  k s½t j | ƒ rÌt j
 | ƒ n d d 6d t j ƒ  k sôt j t ƒ rt j
 t ƒ n d d 6t j
 |	 ƒ d 6} d& i | d 6} t t j | ƒ ƒ ‚ n  d  } }
 }	 | j } d }
 | |
 k } | st j	 d' | f d( | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k sÈt j | ƒ r×t j
 | ƒ n d d 6t j
 |
 ƒ d 6} d) i | d 6} t t j | ƒ ƒ ‚ n  d  } } }
 | j } d }
 | |
 k } | sït j	 d* | f d+ | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k sœt j | ƒ r«t j
 | ƒ n d d 6t j
 |
 ƒ d 6} d, i | d 6} t t j | ƒ ƒ ‚ n  d  } } }
 g  } | | k } | sªt j	 d- | f d. | | f ƒ i t j
 | ƒ d 6d t j ƒ  k sgt j | ƒ rvt j
 | ƒ n d d 6} d/ i | d 6} t t j | ƒ ƒ ‚ n  d  } } d  S(0   s    Does a simple string match work?RT   i   R;   i   R<   i   R=   R   s   ==s   %(py0)s == %(py3)sR>   RU   R   s   assert %(py5)sRA   i    s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sRV   R?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sR   RW   s   assert %(py7)sRK   i   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)sRX   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   R   R   R   R   R   R   R   R   R   RZ   R@   R   R   (   R2   RU   RV   RX   RE   R   R[   R9   RW   R   RF   R\   RH   R   RR   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_invalid_match‘   sX       l   
    ³   	    |   	    |      l   c          C   sÕ  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j j d ƒ \ } } } | t k } | sRt	 j
 d' | f d( | t f ƒ i d t j ƒ  k sØ t	 j t ƒ rç t	 j t ƒ n d d 6d t j ƒ  k st	 j | ƒ rt	 j | ƒ n d d 6} d) i | d 6} t t	 j | ƒ ƒ ‚ n  d& } | j ƒ  } t | ƒ } d }	 | |	 k }
 |
 sdt	 j
 d* |
 f d+ | |	 f ƒ i t	 j | ƒ d 6d t j ƒ  k sÚt	 j | ƒ rét	 j | ƒ n d d 6d t j ƒ  k st	 j t ƒ r t	 j t ƒ n d d 6t	 j |	 ƒ d 6} d, i | d 6} t t	 j | ƒ ƒ ‚ n  d& } }
 }	 | j } d }
 | |
 k } | s8t	 j
 d- | f d. | |
 f ƒ i t	 j | ƒ d 6d t j ƒ  k såt	 j | ƒ rôt	 j | ƒ n d d 6t	 j |
 ƒ d 6} d/ i | d  6} t t	 j | ƒ ƒ ‚ n  d& } } }
 | j } d! }
 | |
 k } | st	 j
 d0 | f d1 | |
 f ƒ i t	 j | ƒ d 6d t j ƒ  k s¹t	 j | ƒ rÈt	 j | ƒ n d d 6t	 j |
 ƒ d 6} d2 i | d  6} t t	 j | ƒ ƒ ‚ n  d& } } }
 g  } | | k } | sÇt	 j
 d3 | f d4 | | f ƒ i t	 j | ƒ d 6d$ t j ƒ  k s„t	 j | ƒ r“t	 j | ƒ n d$ d 6} d5 i | d 6} t t	 j | ƒ ƒ ‚ n  d& } } d& S(6   s2   Does a simple string match fail when 1 char short?RT   i   R;   i   R<   i   R=   t   secont   iss   %(py0)s is %(py2)st   TrueR   RU   R   R   s   assert %(py4)sR   i    s   ==s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sR>   RV   R?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sRW   RA   s   assert %(py7)sRK   i   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   %(py0)s == %(py3)sRX   s   assert %(py5)sN(   Ri   (   s   %(py0)s is %(py2)ss   assert %(py4)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   Rj   R   R   R   R   R   R   R   R   R   RZ   R@   R   R   (   R2   RU   RV   RX   R   t   @py_format3R7   RW   RE   R   RF   R\   RH   R   R9   RR   R[   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_invalid_match_1short    sV      “       ³   	    |   	    |      l   c          C   s¸  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j j d ƒ \ } } } d } | | k } | s1t j	 d! | f d" | | f ƒ i t j
 | ƒ d 6d t j ƒ  k sî t j | ƒ rý t j
 | ƒ n d d 6} d# i | d 6} t t j | ƒ ƒ ‚ n  d  } } | j ƒ  } t | ƒ } d }	 | |	 k }
 |
 sGt j	 d$ |
 f d% | |	 f ƒ i t j
 | ƒ d 6d t j ƒ  k s½t j | ƒ rÌt j
 | ƒ n d d 6d t j ƒ  k sôt j t ƒ rt j
 t ƒ n d d 6t j
 |	 ƒ d 6} d& i | d 6} t t j | ƒ ƒ ‚ n  d  } }
 }	 | j } d }
 | |
 k } | st j	 d' | f d( | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k sÈt j | ƒ r×t j
 | ƒ n d d 6t j
 |
 ƒ d 6} d) i | d 6} t t j | ƒ ƒ ‚ n  d  } } }
 | j } d }
 | |
 k } | sït j	 d* | f d+ | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k sœt j | ƒ r«t j
 | ƒ n d d 6t j
 |
 ƒ d 6} d, i | d 6} t t j | ƒ ƒ ‚ n  d  } } }
 g  } | | k } | sªt j	 d- | f d. | | f ƒ i t j
 | ƒ d 6d t j ƒ  k sgt j | ƒ rvt j
 | ƒ n d d 6} d/ i | d 6} t t j | ƒ ƒ ‚ n  d  } } d  S(0   s@   Does a string match work when multiple patterns partially match?RT   i   t	   somethingi   R<   i   R=   R   s   ==s   %(py0)s == %(py3)sR>   RU   R   s   assert %(py5)sRA   i    s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sRV   R?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sR   RW   s   assert %(py7)sRK   i   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)sRX   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   R   R   R   R   R   R   R   R   R   RZ   R@   R   R   (   R2   RU   RV   RX   RE   R   R[   R9   RW   R   RF   R\   RH   R   RR   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_invalid_match_intree¯   sX       l   
    ³   	    |   	    |      l   c          C   sÕ  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j j d ƒ \ } } } | t k } | sRt	 j
 d& | f d' | t f ƒ i d t j ƒ  k sØ t	 j t ƒ rç t	 j t ƒ n d d 6d t j ƒ  k st	 j | ƒ rt	 j | ƒ n d d 6} d( i | d 6} t t	 j | ƒ ƒ ‚ n  d% } | j ƒ  } t | ƒ } d }	 | |	 k }
 |
 sdt	 j
 d) |
 f d* | |	 f ƒ i t	 j | ƒ d 6d t j ƒ  k sÚt	 j | ƒ rét	 j | ƒ n d d 6d t j ƒ  k st	 j t ƒ r t	 j t ƒ n d d 6t	 j |	 ƒ d 6} d+ i | d 6} t t	 j | ƒ ƒ ‚ n  d% } }
 }	 | j } d }
 | |
 k } | s8t	 j
 d, | f d- | |
 f ƒ i t	 j | ƒ d 6d t j ƒ  k såt	 j | ƒ rôt	 j | ƒ n d d 6t	 j |
 ƒ d 6} d. i | d  6} t t	 j | ƒ ƒ ‚ n  d% } } }
 | j } d }
 | |
 k } | st	 j
 d/ | f d0 | |
 f ƒ i t	 j | ƒ d 6d t j ƒ  k s¹t	 j | ƒ rÈt	 j | ƒ n d d 6t	 j |
 ƒ d 6} d1 i | d  6} t t	 j | ƒ ƒ ‚ n  d% } } }
 g  } | | k } | sÇt	 j
 d2 | f d3 | | f ƒ i t	 j | ƒ d 6d# t j ƒ  k s„t	 j | ƒ r“t	 j | ƒ n d# d 6} d4 i | d 6} t t	 j | ƒ ƒ ‚ n  d% } } d% S(5   s4   Does a partial string match return expected results?RT   i   Rm   i   R<   i   R=   t   secRi   s   %(py0)s is %(py2)sRj   R   RU   R   R   s   assert %(py4)sR   i    s   ==s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sR>   RV   R?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sRW   RA   s   assert %(py7)sRK   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   %(py0)s == %(py3)sRX   s   assert %(py5)sN(   Ri   (   s   %(py0)s is %(py2)ss   assert %(py4)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   Rj   R   R   R   R   R   R   R   R   R   RZ   R@   R   R   (   R2   RU   RV   RX   R   Rk   R7   RW   RE   R   RF   R\   RH   R   R9   RR   R[   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_invalid_match_partial¾   sV      “       ³   	    |   	    |      l   c          C   s›  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j j d ƒ \ } } } | t k } | sRt	 j
 d# | f d$ | t f ƒ i d t j ƒ  k sØ t	 j t ƒ rç t	 j t ƒ n d d 6d t j ƒ  k st	 j | ƒ rt	 j | ƒ n d d 6} d% i | d 6} t t	 j | ƒ ƒ ‚ n  d" } t | ƒ } d } | | k }	 |	 sXt	 j
 d& |	 f d' | | f ƒ i t	 j | ƒ d 6d t j ƒ  k sÎt	 j | ƒ rÝt	 j | ƒ n d d 6d t j ƒ  k st	 j t ƒ rt	 j t ƒ n d d 6t	 j | ƒ d 6}
 d( i |
 d 6} t t	 j | ƒ ƒ ‚ n  d" } }	 } t | ƒ } d) } | | k } | st	 j
 d* | f d+ | | f ƒ i d t j ƒ  k sÌt	 j | ƒ rÛt	 j | ƒ n d d 6t	 j | ƒ d 6} d, i | d 6} t t	 j | ƒ ƒ ‚ n  d" } } d- } | | k } | sÖt	 j
 d. | f d/ | | f ƒ i d t j ƒ  k sƒt	 j | ƒ r’t	 j | ƒ n d d 6t	 j | ƒ d 6} d0 i | d 6} t t	 j | ƒ ƒ ‚ n  d" } } g  } | | k } | st	 j
 d1 | f d2 | | f ƒ i t	 j | ƒ d 6d! t j ƒ  k sJt	 j | ƒ rYt	 j | ƒ n d! d 6} d3 i | d 6} t t	 j | ƒ ƒ ‚ n  d" } } d" S(4   sC   Partial string matching multiple patterns returns expected results?RT   i   Rm   i   R<   i   R=   t   sRi   s   %(py0)s is %(py2)sRj   R   RU   R   R   s   assert %(py4)sR   s   ==s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sR>   RV   R?   R@   R   s   assert %(py8)sR*   t   ins   %(py1)s in %(py3)st   tupless   assert %(py5)sRA   s   %(py0)s == %(py3)sRX   N(   Ri   (   s   %(py0)s is %(py2)ss   assert %(py4)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   i   i   (   Rr   (   s   %(py1)s in %(py3)ss   assert %(py5)s(   i   i   (   Rr   (   s   %(py1)s in %(py3)ss   assert %(py5)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   Rj   R   R   R   R   R   R   R   R   R   R@   R	   (   R2   RU   RV   RX   R   Rk   R7   RE   R   RF   R\   RH   Rs   t   @py_assert0R[   R9   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt&   test_dn_invalid_match_partial_multipleÍ   sR      “       ³      l   
   l   
   l   c          C   s¸  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j j d ƒ \ } } } d	 } | | k } | s1t j	 d" | f d# | | f ƒ i t j
 | ƒ d 6d t j ƒ  k sî t j | ƒ rý t j
 | ƒ n d d 6} d$ i | d 6} t t j | ƒ ƒ ‚ n  d! } } t | ƒ } d } | | k }	 |	 s;t j	 d% |	 f d& | | f ƒ i t j
 | ƒ d 6d t j ƒ  k s±t j | ƒ rÀt j
 | ƒ n d d 6d t j ƒ  k sèt j t ƒ r÷t j
 t ƒ n d d 6t j
 | ƒ d 6}
 d' i |
 d 6} t t j | ƒ ƒ ‚ n  d! } }	 } | j ƒ  } | j } d }	 | |	 k } | st j	 d( | f d) | |	 f ƒ i t j
 | ƒ d 6d t j ƒ  k sÈt j | ƒ r×t j
 | ƒ n d d 6t j
 |	 ƒ d 6} d* i | d 6} t t j | ƒ ƒ ‚ n  d! } } }	 | j } d }	 | |	 k } | sït j	 d+ | f d, | |	 f ƒ i t j
 | ƒ d 6d t j ƒ  k sœt j | ƒ r«t j
 | ƒ n d d 6t j
 |	 ƒ d 6} d- i | d 6} t t j | ƒ ƒ ‚ n  d! } } }	 g  } | | k } | sªt j	 d. | f d/ | | f ƒ i t j
 | ƒ d 6d  t j ƒ  k sgt j | ƒ rvt j
 | ƒ n d  d 6} d0 i | d 6} t t j | ƒ ƒ ‚ n  d! } } d! S(1   s-   Failure to match because the name is too longRT   i   Rm   i   R<   i   R=   s   something elses    elses   ==s   %(py0)s == %(py3)sR>   RU   R   R   s   assert %(py5)sRA   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sRV   R?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sR   RW   s   assert %(py7)sRK   i	   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)sRX   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   R   R   R   R   R   R   R   R   R   R@   RZ   R   R   (   R2   RU   RV   RX   RE   R   R[   R9   R   RF   R\   RH   RW   R   RR   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_invalid_match_toolongÜ   sZ    	   l   
    ³   	    |   	    |      l   c          C   sF  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j j d ƒ \ } } } d } | | k } | sù t j	 d | f d | | f ƒ i t j
 | ƒ d 6d	 t j ƒ  k s¶ t j | ƒ rÅ t j
 | ƒ n d	 d
 6} d i | d 6} t t j | ƒ ƒ ‚ n  d } } t | ƒ } d } | | k }	 |	 st j	 d  |	 f d! | | f ƒ i t j
 | ƒ d 6d t j ƒ  k syt j | ƒ rˆt j
 | ƒ n d d 6d t j ƒ  k s°t j t ƒ r¿t j
 t ƒ n d d
 6t j
 | ƒ d 6}
 d" i |
 d 6} t t j | ƒ ƒ ‚ n  d } }	 } t | ƒ } d# } | | k } | sÊt j	 d$ | f d% | | f ƒ i d t j ƒ  k swt j | ƒ r†t j
 | ƒ n d d 6t j
 | ƒ d 6} d& i | d 6} t t j | ƒ ƒ ‚ n  d } } d' } | | k } | st j	 d( | f d) | | f ƒ i d t j ƒ  k s.t j | ƒ r=t j
 | ƒ n d d 6t j
 | ƒ d 6} d* i | d 6} t t j | ƒ ƒ ‚ n  d } } g  } | | k } | s8t j	 d+ | f d, | | f ƒ i t j
 | ƒ d 6d t j ƒ  k sõt j | ƒ rt j
 | ƒ n d d
 6} d- i | d 6} t t j | ƒ ƒ ‚ n  d } } d S(.   s>   Fail to match optional components puts failures at right spotsRT   i   s   word[ - <#>][ - <yyyy>]s   word - at   as   ==s   %(py0)s == %(py3)sR>   RU   R   R   s   assert %(py5)sRA   i   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sRV   R?   R@   R   s   assert %(py8)sR*   i   Rr   s   %(py1)s in %(py3)sRs   i   RX   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   i   i   (   Rr   (   s   %(py1)s in %(py3)ss   assert %(py5)s(   i   i   (   Rr   (   s   %(py1)s in %(py3)ss   assert %(py5)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   R   R   R   R   R   R   R   R   R   R@   R	   (   R2   RU   RV   RX   RE   R   R[   R9   R   RF   R\   RH   Rs   Rt   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt"   test_dn_invalid_match_same_patterní   sT    
	   l   
    ³      l   
   l   
   l   c          C   s€  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j j d ƒ \ } } } d } | | k } | sù t j	 d | f d | | f ƒ i t j
 | ƒ d 6d	 t j ƒ  k s¶ t j | ƒ rÅ t j
 | ƒ n d	 d
 6} d  i | d 6} t t j | ƒ ƒ ‚ n  d } } | j ƒ  } t | ƒ } d }	 | |	 k }
 |
 st j	 d! |
 f d" | |	 f ƒ i t j
 | ƒ d 6d t j ƒ  k s…t j | ƒ r”t j
 | ƒ n d d 6d t j ƒ  k s¼t j t ƒ rËt j
 t ƒ n d d
 6t j
 |	 ƒ d 6} d# i | d 6} t t j | ƒ ƒ ‚ n  d } }
 }	 | j } d }
 | |
 k } | sãt j	 d$ | f d% | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k st j | ƒ rŸt j
 | ƒ n d d
 6t j
 |
 ƒ d 6} d& i | d 6} t t j | ƒ ƒ ‚ n  d } } }
 | j } d }
 | |
 k } | s·t j	 d' | f d( | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k sdt j | ƒ rst j
 | ƒ n d d
 6t j
 |
 ƒ d 6} d) i | d 6} t t j | ƒ ƒ ‚ n  d } } }
 g  } | | k } | srt j	 d* | f d+ | | f ƒ i t j
 | ƒ d 6d t j ƒ  k s/t j | ƒ r>t j
 | ƒ n d d
 6} d, i | d 6} t t j | ƒ ƒ ‚ n  d } } d S(-   s'   Matches a version number after a stringRT   i   s	   word v<#>s   word v5R   s   ==s   %(py0)s == %(py3)sR>   RU   R   s   assert %(py5)sRA   i    s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sRV   R?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sR   RW   s   assert %(py7)sRK   i	   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)sRX   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   R   R   R   R   R   R   R   R   R   RZ   R@   R   R   (   R2   RU   RV   RX   RE   R   R[   R9   RW   R   RF   R\   RH   R   RR   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_invalid_match_versioný   sV    
   l   
    ³   	    |   	    |      l   c          C   s€  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j j d ƒ \ } } } d } | | k } | sù t j	 d | f d | | f ƒ i t j
 | ƒ d 6d	 t j ƒ  k s¶ t j | ƒ rÅ t j
 | ƒ n d	 d
 6} d  i | d 6} t t j | ƒ ƒ ‚ n  d } } | j ƒ  } t | ƒ } d }	 | |	 k }
 |
 st j	 d! |
 f d" | |	 f ƒ i t j
 | ƒ d 6d t j ƒ  k s…t j | ƒ r”t j
 | ƒ n d d 6d t j ƒ  k s¼t j t ƒ rËt j
 t ƒ n d d
 6t j
 |	 ƒ d 6} d# i | d 6} t t j | ƒ ƒ ‚ n  d } }
 }	 | j } d }
 | |
 k } | sãt j	 d$ | f d% | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k st j | ƒ rŸt j
 | ƒ n d d
 6t j
 |
 ƒ d 6} d& i | d 6} t t j | ƒ ƒ ‚ n  d } } }
 | j } d }
 | |
 k } | s·t j	 d' | f d( | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k sdt j | ƒ rst j
 | ƒ n d d
 6t j
 |
 ƒ d 6} d) i | d 6} t t j | ƒ ƒ ‚ n  d } } }
 g  } | | k } | srt j	 d* | f d+ | | f ƒ i t j
 | ƒ d 6d t j ƒ  k s/t j | ƒ r>t j
 | ƒ n d d
 6} d, i | d 6} t t j | ƒ ƒ ‚ n  d } } d S(-   s-   Matches a version number after a user elementRT   i   s   word - <address> v<#>s   word - Park Place v5R   s   ==s   %(py0)s == %(py3)sR>   RU   R   s   assert %(py5)sRA   i    s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sRV   R?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sR   RW   s   assert %(py7)sRK   i   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)sRX   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   R   R   R   R   R   R   R   R   R   RZ   R@   R   R   (   R2   RU   RV   RX   RE   R   R[   R9   RW   R   RF   R\   RH   R   RR   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt%   test_dn_invalid_match_version_userstr  sX    
	   l   
    ³   	    |   	    |      l   c          C   s€  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j j d ƒ \ } } } d } | | k } | sù t j	 d | f d | | f ƒ i t j
 | ƒ d 6d	 t j ƒ  k s¶ t j | ƒ rÅ t j
 | ƒ n d	 d
 6} d  i | d 6} t t j | ƒ ƒ ‚ n  d } } | j ƒ  } t | ƒ } d }	 | |	 k }
 |
 st j	 d! |
 f d" | |	 f ƒ i t j
 | ƒ d 6d t j ƒ  k s…t j | ƒ r”t j
 | ƒ n d d 6d t j ƒ  k s¼t j t ƒ rËt j
 t ƒ n d d
 6t j
 |	 ƒ d 6} d# i | d 6} t t j | ƒ ƒ ‚ n  d } }
 }	 | j } d }
 | |
 k } | sãt j	 d$ | f d% | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k st j | ƒ rŸt j
 | ƒ n d d
 6t j
 |
 ƒ d 6} d& i | d 6} t t j | ƒ ƒ ‚ n  d } } }
 | j } d }
 | |
 k } | s·t j	 d' | f d( | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k sdt j | ƒ rst j
 | ƒ n d d
 6t j
 |
 ƒ d 6} d) i | d 6} t t j | ƒ ƒ ‚ n  d } } }
 g  } | | k } | srt j	 d* | f d+ | | f ƒ i t j
 | ƒ d 6d t j ƒ  k s/t j | ƒ r>t j
 | ƒ n d d
 6} d, i | d 6} t t j | ƒ ƒ ‚ n  d } } d S(-   s-   Matches a version number after a user elementRT   i   s   word - <address>s   word - Park Place v5R   s   ==s   %(py0)s == %(py3)sR>   RU   R   s   assert %(py5)sRA   i    s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sRV   R?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sR   RW   s   assert %(py7)sRK   i   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)sRX   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   R   R   R   R   R   R   R   R   R   RZ   R@   R   R   (   R2   RU   RV   RX   RE   R   R[   R9   RW   R   RF   R\   RH   R   RR   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt-   test_dn_invalid_match_implied_version_userstr  sX    
	   l   
    ³   	    |   	    |      l   c          C   s€  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j j d ƒ \ } } } d } | | k } | sù t j	 d | f d | | f ƒ i t j
 | ƒ d 6d	 t j ƒ  k s¶ t j | ƒ rÅ t j
 | ƒ n d	 d
 6} d  i | d 6} t t j | ƒ ƒ ‚ n  d } } | j ƒ  } t | ƒ } d }	 | |	 k }
 |
 st j	 d! |
 f d" | |	 f ƒ i t j
 | ƒ d 6d t j ƒ  k s…t j | ƒ r”t j
 | ƒ n d d 6d t j ƒ  k s¼t j t ƒ rËt j
 t ƒ n d d
 6t j
 |	 ƒ d 6} d# i | d 6} t t j | ƒ ƒ ‚ n  d } }
 }	 | j } d }
 | |
 k } | sãt j	 d$ | f d% | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k st j | ƒ rŸt j
 | ƒ n d d
 6t j
 |
 ƒ d 6} d& i | d 6} t t j | ƒ ƒ ‚ n  d } } }
 | j } d }
 | |
 k } | s·t j	 d' | f d( | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k sdt j | ƒ rst j
 | ƒ n d d
 6t j
 |
 ƒ d 6} d) i | d 6} t t j | ƒ ƒ ‚ n  d } } }
 g  } | | k } | srt j	 d* | f d+ | | f ƒ i t j
 | ƒ d 6d t j ƒ  k s/t j | ƒ r>t j
 | ƒ n d d
 6} d, i | d 6} t t j | ƒ ƒ ‚ n  d } } d S(-   sW   Matches a version number after a user element followed by an optional
    parentheticalRT   i   s   word - <address>[ (optional)]s   word - Park Place v5R   s   ==s   %(py0)s == %(py3)sR>   RU   R   s   assert %(py5)sRA   i    s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sRV   R?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sR   RW   s   assert %(py7)sRK   i   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)sRX   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   R   R   R   R   R   R   R   R   R   RZ   R@   R   R   (   R2   RU   RV   RX   RE   R   R[   R9   RW   R   RF   R\   RH   R   RR   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt6   test_dn_invalid_match_implied_version_userstr_optparen,  sX    
	   l   
    ³   	    |   	    |      l   c          C   sƒ  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j j d ƒ \ } } } d } | | k } | sù t j	 d | f d  | | f ƒ i t j
 | ƒ d 6d	 t j ƒ  k s¶ t j | ƒ rÅ t j
 | ƒ n d	 d
 6} d! i | d 6} t t j | ƒ ƒ ‚ n  d } } | j ƒ  } t | ƒ } d }	 | |	 k }
 |
 st j	 d" |
 f d# | |	 f ƒ i t j
 | ƒ d 6d t j ƒ  k s…t j | ƒ r”t j
 | ƒ n d d 6d t j ƒ  k s¼t j t ƒ rËt j
 t ƒ n d d
 6t j
 |	 ƒ d 6} d$ i | d 6} t t j | ƒ ƒ ‚ n  d } }
 }	 | j } d }
 | |
 k } | sãt j	 d% | f d& | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k st j | ƒ rŸt j
 | ƒ n d d
 6t j
 |
 ƒ d 6} d' i | d 6} t t j | ƒ ƒ ‚ n  d } } }
 | j } d }
 | |
 k } | s·t j	 d( | f d) | |
 f ƒ i t j
 | ƒ d 6d t j ƒ  k sdt j | ƒ rst j
 | ƒ n d d
 6t j
 |
 ƒ d 6} d* i | d 6} t t j | ƒ ƒ ‚ n  d } } }
 d g } | | k } | sut j	 d+ | f d, | | f ƒ i t j
 | ƒ d 6d t j ƒ  k s2t j | ƒ rAt j
 | ƒ n d d
 6} d- i | d 6} t t j | ƒ ƒ ‚ n  d } } d S(.   s-   Matches optional parens after required parensRT   i   s   word - <address> (comment)s)   word - Park Place (comment) (extra paren)R   s   ==s   %(py0)s == %(py3)sR>   RU   R   s   assert %(py5)sRA   i    s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sRV   R?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sR   RW   s   assert %(py7)sRK   i   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   extra parenRX   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   R   R   R   R   R   R   R   R   R   RZ   R@   R   R   (   R2   RU   RV   RX   RE   R   R[   R9   RW   R   RF   R\   RH   R   RR   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_invalid_match_parens=  sX    
	   l   
    ³   	    |   	    |   	   l   c          C   s½  t  j t  j d ƒ }  |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j |  j t j d d ƒ |  j j d ƒ \ } } } d } | | k } | s1t j	 d | f d | | f ƒ i t j
 | ƒ d 6d t j ƒ  k sî t j | ƒ rý t j
 | ƒ n d d 6} d  i | d 6} t t j | ƒ ƒ ‚ n  d } } t | ƒ } d } | | k }	 |	 s;t j	 d! |	 f d" | | f ƒ i t j
 | ƒ d 6d t j ƒ  k s±t j | ƒ rÀt j
 | ƒ n d d 6d t j ƒ  k sèt j t ƒ r÷t j
 t ƒ n d d 6t j
 | ƒ d 6}
 d# i |
 d 6} t t j | ƒ ƒ ‚ n  d } }	 } g  | D] } | j ^ qP} d d d g } | | k } | sôt j	 d$ | f d% | | f ƒ i t j
 | ƒ d 6t j
 | ƒ d 6} d& i | d 6}
 t t j |
 ƒ ƒ ‚ n  d } } } g  } | | k } | s¯t j	 d' | f d( | | f ƒ i t j
 | ƒ d 6d t j ƒ  k slt j | ƒ r{t j
 | ƒ n d d 6} d) i | d 6} t t j | ƒ ƒ ‚ n  d } } d S(*   s   Failure to match any patternRT   i   Rm   i   R<   i   R=   t   xxxs   ==s   %(py0)s == %(py3)sR>   RU   R   R   s   assert %(py5)sRA   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sRV   R?   R@   R   s   assert %(py8)sR*   i    s   %(py1)s == %(py4)sR   s   assert %(py6)sRX   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s   %(py1)s == %(py4)ss   assert %(py6)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   R   R   R   R   R   R   R   R   R   R@   R   (   R2   RU   RV   RX   RE   R   R[   R9   R   RF   R\   RH   R   Rt   R   R7   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_match_nothingM  sF       l   
    ³       E      l   c         C   s7  t  j j ƒ  t j t j d d ƒ} | j | j t j	 d d ƒ | j | j t j	 d d ƒ |  j
 ƒ  \ } } d } | | k } | st j d | f d | | f ƒ i t j | ƒ d
 6d t j ƒ  k sÙ t j | ƒ rè t j | ƒ n d d 6} d i | d 6} t t j | ƒ ƒ ‚ n  d } } t  j j ƒ  d S(   sE   Do 2 rules where the 2nd is an extension of the first make a warning?t   name_patternRT   i   t   onei   t   oneplusR   s   !=s   %(py0)s != %(py3)sR>   t   errR   s   assert %(py5)sRA   N(   s   !=(   s   %(py0)s != %(py3)ss   assert %(py5)s(   R   t   emt   exit_if_erroredR   R3   R4   RN   RO   R   RP   t
   readouterrR   R   R   R   R   R   R   R   R   (   t   capsyst   root_dirt   outRƒ   RE   R   R[   R9   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_warn_no_option1[  s"    

   l   
c         C   s7  t  j j ƒ  t j t j d d ƒ} | j | j t j	 d d ƒ | j | j t j	 d d ƒ |  j
 ƒ  \ } } d } | | k } | st j d | f d | | f ƒ i t j | ƒ d
 6d t j ƒ  k sÙ t j | ƒ rè t j | ƒ n d d 6} d i | d 6} t t j | ƒ ƒ ‚ n  d } } t  j j ƒ  d S(   sC   Do 2 rules where the 1st is an extension of the 2nd make a warning?R€   RT   i   R‚   i   R   R   s   !=s   %(py0)s != %(py3)sR>   Rƒ   R   s   assert %(py5)sRA   N(   s   !=(   s   %(py0)s != %(py3)ss   assert %(py5)s(   R   R„   R…   R   R3   R4   RN   RO   R   RP   R†   R   R   R   R   R   R   R   R   R   (   R‡   Rˆ   R‰   Rƒ   RE   R   R[   R9   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_warn_no_option2j  s"    

   l   
c         C   s7  t  j j ƒ  t j t j d d ƒ} | j | j t j	 d d ƒ | j | j t j	 d d ƒ |  j
 ƒ  \ } } d } | | k } | st j d | f d | | f ƒ i t j | ƒ d	 6d
 t j ƒ  k sÙ t j | ƒ rè t j | ƒ n d
 d 6} d i | d 6} t t j | ƒ ƒ ‚ n  d } } t  j j ƒ  d S(   s#   Do 2 idential rules make a warning?R€   RT   i   R   i   R   s   !=s   %(py0)s != %(py3)sR>   Rƒ   R   s   assert %(py5)sRA   N(   s   !=(   s   %(py0)s != %(py3)ss   assert %(py5)s(   R   R„   R…   R   R3   R4   RN   RO   R   RP   R†   R   R   R   R   R   R   R   R   R   (   R‡   Rˆ   R‰   Rƒ   RE   R   R[   R9   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_warn_dupsy  s"    

   l   
c         C   s  t  j t  j d d ƒ} | j | j t j d d ƒ | j | j t j d d ƒ |  j ƒ  \ } } d } | | k } | st j	 d | f d | | f ƒ i t j
 | ƒ d
 6d t j ƒ  k sÌ t j | ƒ rÛ t j
 | ƒ n d d 6} d i | d 6} t t j | ƒ ƒ ‚ n  d } } d S(   s)   Different rules should not make a warningR€   RT   i   t   oneAi   t   oneBR   s   ==s   %(py0)s == %(py3)sR>   Rƒ   R   s   assert %(py5)sRA   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   R†   R   R   R   R   R   R   R   R   R   (   R‡   Rˆ   R‰   Rƒ   RE   R   R[   R9   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dn_no_warnˆ  s    

   l   c          C   s³  t  j t  j d ƒ }  |  j |  j t j d d ƒ d } d } d } |  j j d | d | d | d	 ƒ \ } } } d
 } | | k } | s#t j	 d# | f d$ | | f ƒ i t j
 | ƒ d 6d t j ƒ  k sà t j | ƒ rï t j
 | ƒ n d d 6}	 d% i |	 d 6}
 t t j |
 ƒ ƒ ‚ n  d" } } | j ƒ  } t | ƒ } d } | | k } | s9t j	 d& | f d' | | f ƒ i t j
 | ƒ d 6d t j ƒ  k s¯t j | ƒ r¾t j
 | ƒ n d d 6d t j ƒ  k sæt j t ƒ rõt j
 t ƒ n d d 6t j
 | ƒ d 6} d( i | d 6} t t j | ƒ ƒ ‚ n  d" } } } | j } d } | | k } | st j	 d) | f d* | | f ƒ i t j
 | ƒ d 6d t j ƒ  k sºt j | ƒ rÉt j
 | ƒ n d d 6t j
 | ƒ d 6}
 d+ i |
 d 6} t t j | ƒ ƒ ‚ n  d" } } } | j } d } | | k } | sát j	 d, | f d- | | f ƒ i t j
 | ƒ d 6d t j ƒ  k sŽt j | ƒ rt j
 | ƒ n d d 6t j
 | ƒ d 6}
 d. i |
 d 6} t t j | ƒ ƒ ‚ n  d" } } } | | | g } | | k } | s¥t j	 d/ | f d0 | | f ƒ i t j
 | ƒ d 6d! t j ƒ  k sbt j | ƒ rqt j
 | ƒ n d! d 6}	 d1 i |	 d 6}
 t t j |
 ƒ ƒ ‚ n  d" } } d" S(2   sJ   Reported parens and optional parens are returned,
    in the correct orderRT   i   s   word - <address> (comment)s   comment; with extras   extra parens   another extra parens   word - Park Place (s   ) (t   )R   s   ==s   %(py0)s == %(py3)sR>   RU   R   s   assert %(py5)sRA   i    s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sRV   R?   R@   R   s   assert %(py8)sR*   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)sR   RW   s   assert %(py7)sRK   i   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)sRX   N(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   s   ==(   s0   %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)ss   assert %(py8)s(   s   ==(   s.   %(py2)s
{%(py2)s = %(py0)s.rownum
} == %(py5)ss   assert %(py7)s(   s   ==(   s+   %(py2)s
{%(py2)s = %(py0)s.pos
} == %(py5)ss   assert %(py7)s(   s   ==(   s   %(py0)s == %(py3)ss   assert %(py5)s(   R   R3   R4   RN   RO   R   RP   RY   R   R   R   R   R   R   R   R   R   RZ   R@   R   R   (   R2   t   matched_commentt   extra_paren1t   extra_paren2RU   RV   RX   RE   R   R[   R9   RW   R   RF   R\   RH   R   RR   (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   test_dt_invalid_report_items—  s^    
	*   l   
    ³   	    |   	    |      l   (.   t   __builtin__R   t   _pytest.assertion.rewritet	   assertiont   rewriteR   R^   t   enforcerR    R`   R   R   R   RL   R	   R#   R$   R%   R&   R0   R8   R:   RJ   RS   R]   Rb   Rd   Rf   Rg   Rl   Rn   Rp   Ru   Rv   Rx   Ry   Rz   R{   R|   R}   R   RŠ   R‹   RŒ   R   R”   (    (    (    sQ   /home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_fstree.pyt   <module>   sN     						
					
																					