
1Y                 @   s   d  d l  Z d  d l j j Z d  d l m Z d Z Gd d   d e	  Z
 d d   Z d d	   Z d
 d   Z d d   Z d d   Z d d   Z d d   Z d S)    N)printoutz	some/pathc               @   s   e  Z d  Z d d   Z d S)MockDirobjectc             C   s   t  |  _ d  S)N)EXAMPLE_PATHpath)self r   S/home/kop/biz/barnett/enforcer_project/BRIEF-Script/Enforcer/tests/test_printout.py__init__    s    zMockDirobject.__init__N)__name__
__module____qualname__r	   r   r   r   r   r      s   r   c       
      C   s  t  j   } | j d  |  j   \ } } | j d  } | d } t  j } | | k } | st j d | f d | | f  i d 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 } t  j } | | k } | st j d | f d | | f  i d t j	   k sy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)z<Does the first print section begin and end with break lines?zline of text

r   ==-%(py1)s == %(py5)s
{%(py5)s = %(py3)s.BREAK
}r   py3py5py1 assert %(py7)spy7N   )r   )r   r   )r   )r   r   )r   Printerprint_section
readouterrsplitBREAK
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)
capsysprinterouterrlines@py_assert0@py_assert4@py_assert2@py_format6@py_format8r   r   r    test_printer_print_section_first(   s(    
 	   |   
 	   |   r/   c             C   s  t  j   } | j d  | j d  |  j   \ } } | j d  } | j } t  j } | |  } d } | | k }	 |	 syt j d |	 f d | | f  i d t	 j
   k s t j t   r t j t   n d d 6t j |  d	 6t 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)z-Printing 2 sections should result in 3 breakszline of text
zline in a new section
r      r   g%(py7)s
{%(py7)s = %(py2)s
{%(py2)s = %(py0)s.count
}(%(py5)s
{%(py5)s = %(py3)s.BREAK
})
} == %(py10)sr   r   r   py10r)   py0r   py2r   assert %(py12)spy12N)r   )r1   r5   )r   r   r   r   r   countr   r   r   r   r    r!   r"   r#   r$   )r%   r&   r'   r(   r)   @py_assert1r+   @py_assert6@py_assert9@py_assert8@py_format11@py_format13r   r   r   test_printer_print_section_last3   s    	 	        r>   c              C   s?  t  j   }  |  j } |  j 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 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)z)Printing a section bumps the item counterzline of text
   r   9%(py2)s
{%(py2)s = %(py0)s.count
} == (%(py4)s + %(py6)s)py6r&   r3   r4   r7   py4r   assert %(py9)spy9N)r   )r@   rC   )r   r   r7   r   r   r   r"   r   r    r!   r#   r$   )r&   r7   r8   @py_assert5@py_assert7@py_assert3r.   @py_format10r   r   r   test_printer_counts@   s    		  
      rI   c              C   s  t  j   }  d d g } |  j t   |  |  j } t |  } t |  } | | k } | rt j d f | f d f | | f  i t j |  d 6d t	 j
   k p t j t  r t j t  n d d 6d t	 j
   k p t j |  r t j |  n d d	 6t j |  d
 6d t	 j
   k p2t j t  rDt j t  n d d 6t j |  d 6d t	 j
   k pyt j |   rt j |   n d d 6} d d i | d 6} t t j |    n  d } } } } d S)z2Adding a initial report item does what is expectedzone itemanotherr   zr%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.report_items
})
} == %(py10)s
{%(py10)s = %(py7)s(%(py8)s)
}r   lenr   datapy8r2   r3   r   r&   r   r   zassert %(py12)sr6   N)r   r   add_report_itemsr   report_itemsrK   r   r   r"   r   r    r!   r#   r$   )r&   rL   r,   r+   r:   r9   r<   r=   r   r   r   %test_printer_add_report_items_initialJ   s    	      8   rP   c        	      C   sy  t  j   }  t   } d d g } |  j | |  d g } |  j | |  |  j } t |  } d } | | k } | sc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
 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 } } } } d S)z1Adding a second report item does what is expectedzone itemrJ   thirdr0   r   R%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.report_items
})
} == %(py8)sr   rK   r3   r   r&   r   rM   r   assert %(py10)sr2   N)r   )rR   rS   )r   r   r   rN   rO   rK   r   r   r"   r   r    r!   r#   r$   )	r&   dirrL   r,   r+   rF   r9   @py_format9r<   r   r   r   $test_printer_add_report_items_secondR   s    			        rV   c              C   s$  t  j t d g   }  d d d g } |  j t   |  |  j } t d f t d f g } | | 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 6t j |  d	 6} d i | d 6} t t j |    n  d } } } d S)z.Stock parens are filtered out of parens added.ignoredzone itemrJ   r   4%(py2)s
{%(py2)s = %(py0)s.report_items
} == %(py5)sr&   r3   r   r4   r   assert %(py7)sr   N)r   )rX   rY   )r   r   setrN   r   rO   r   r   r   r   r    r!   r"   r#   r$   )r&   rL   r8   r+   rG   r-   r.   r   r   r   &test_printer_add_report_items_filtered]   s    	    |   r[   c             C   s  t  j   } d d g } | j t   |  | j   |  j   \ } } | j } d } | |  } t |  } | | k }	 |	 rt j	 d f |	 f d f | | f  i t j
 |  d 6d t j   k p t j |  r t j
 |  n d d 6t j
 |  d	 6d
 t j   k pt j |  r/t j
 |  n d
 d 6t j
 |  d 6d t j   k pdt j t  rvt j
 t  n d d 6t j
 |  d 6}
 d d i |
 d 6} t t j |    n  d } } } }	 } d } | | k } | rt j	 d f | f d f | | f  i t j
 |  d 6d t j   k pBt j |  rTt j
 |  n d d 6} d d i | d 6} t t j |    n  d } } d S)z,Printing report items prints a line per itemzone itemrJ   r   r   zk%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.count
}(%(py4)s)
} == %(py11)s
{%(py11)s = %(py8)s(%(py9)s)
}rA   r'   r3   rB   rL   rD   py11rK   rM   r4   r   zassert %(py13)spy13Nz%(py0)s == %(py3)sr   r(   zassert %(py5)sr   )r   r   rN   r   Zprint_report_itemsr   r7   rK   r   r   r"   r   r    r!   r#   r$   )r%   r&   rL   r'   r(   r8   rG   rE   @py_assert10rF   @py_format12@py_format14r,   @py_format4r-   r   r   r   test_printer_print_report_itemsh   s.    
	             r   rb   )builtinsr   _pytest.assertion.rewrite	assertionrewriter   enforcerr   r   objectr   r/   r>   rI   rP   rV   r[   rb   r   r   r   r   <module>   s     		
