
    i                         d Z ddlZddlmc mZ ddlZddlZddl	Z	ddl
mZ ddlZej                  j                  d e ee      j"                  j"                               ddlZej(                  j+                  d ee      j"                  j"                  dz        Zg ZeZerej2                  ZeZesddd ej6                         v s ej8                  e      r ej:                  e      ndiz  Zej?                  e       er`d	d ej6                         v s ej8                  e      r ej:                  e      nd ej:                  e      d
z  Z ej?                  e         ejB                  ed      i z  Z"dde"iz  Z# e$ ejJ                  e#            dxZxZZej(                  jM                  e      Z'ej2                  jQ                  e'       e'Z)dedefdZ*dede+defdZ,deddfdZ-deddfdZ.deddfdZ/deddfdZ0deddfdZ1deddfdZ2deddfdZ3deddfdZ4deddfdZ5deddfdZ6deddfdZ7deddfdZ8deddfdZ9deddfd Z:deddfd!Z;deddfd"Z<deddfd#Z=d'd$Z>d'd%Z?d'd&Z@y)(u   Tests for lint-workspace.py - TDD approach.

tmp_path를 사용하여 격리된 테스트. 각 규칙 위반 감지, 심각도 분류,
종료 코드를 검증합니다.
    N)Pathlint_workspacezlint-workspace.pyz%(py2)spy2_specz#%(py6)s
{%(py6)s = %(py4)s.loader
})py4py6zassert %(py9)spy9tmp_pathreturnc                     | dz  j                          | dz  j                          | dz  dz  j                  d       | dz  j                          | dz  j                          | S )	NteamstmpmemoryeventsTparentsscriptsworkers)mkdir)r
   s    8/home/jay/workspace/scripts/tests/test_lint_workspace.py_wsr      sf     8#**4*8	  "	  "O    pathdaysc                     | j                   j                  dd       | j                  d       t        j                         |dz  z
  }t	        j
                  | ||f       | S )NT)r   exist_okdataiQ )parentr   
write_texttimeosutime)r   r   ts      r   _oldr$   $   sP    KKdT2OOF		dUl"AHHTAq6Kr   c                    t        |       }|dz  j                  d       |dz  j                  d       |dz  j                  d       t        j                  } ||      }g }||k(  }|s
t	        j
                  d|fd||f      dt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      dt        j                         v st	        j                  |      rt	        j                  |      ndt	        j                  |      t	        j                  |      d	z  }d
d|iz  }t        t	        j                  |            d x}x}x}}y )N	CLAUDE.mdokz.envzdispatch.py==)z_%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.check_root_unwanted_files
}(%(py3)s)
} == %(py8)slwwspy0r   py3py5py8assert %(py10)spy10)r   r   r*   check_root_unwanted_files
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationr
   r+   @py_assert1@py_assert4@py_assert7@py_assert6@py_format9@py_format11s           r    test_root_allowed_files_no_errorrC   0   s    	XB+!!$'&[T"-##D)''1'+1r1+r1111+r11111121112111'111111111111+111r1111111r   c                    t        |       }|dz  j                  d       t        j                  |      }g }t	        |      }d}||k(  }|}|r#|d   d   }d}	||	k(  }
|
}|
rd}|d   d   }||v }|}|st        j                  d|fd||f      dt        j                         v st        j                  t              rt        j                  t              ndd	t        j                         v st        j                  |      rt        j                  |      nd	t        j                  |      t        j                  |      d
z  }dd|iz  }|j                  |       |rt        j                  d
fd	f      t        j                  |      t        j                  |	      dz  }dd|iz  }|j                  |       |
r_t        j                  dfdf      t        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       t        j                  |d      i z  }dd|iz  }t        t        j                  |            d x}x}x}x}x}x}x}
x}	x}x}}y )Nzrandom_notes.txtoops   r   ERRORr(   z0%(py5)s
{%(py5)s = %(py2)s(%(py3)s)
} == %(py8)slenvr   r.   r/   r0   %(py10)sr2   z%(py13)s == %(py16)spy13py16%(py18)spy18inz%(py21)s in %(py24)spy21py24%(py26)spy26assert %(py29)spy29)r   r   r*   r3   rI   r4   r5   r6   r7   r8   r9   append_format_boolopr:   r;   r
   r+   rJ   r=   r>   r?   r@   @py_assert0@py_assert12@py_assert15@py_assert14@py_assert20@py_assert23@py_assert22rA   rB   @py_format17@py_format19@py_format25@py_format27@py_format28@py_format30s                         r   test_root_unknown_file_errorrm   8   sq   	XB
((0
$$R(AO3q6OQO6Q;O1Q47OgO7g-O2DO!QO2D2OOOOO6QOOOOOO3OOO3OOOOOOqOOOqOOO6OOOQOOOOOOO7gOOO7OOOgOOOOOOO2DOOO2DOOOOOOOOOOOOOOOOOOr   c                 t   t        |       }|dz  j                  d       |dz  j                  d       t        j                  |      }g }t	        |      }d}||k(  }|}|rd |D        }t        |      }	|	}|st        j                  d|fd||f      dt        j                         v st        j                  t              rt        j                  t              ndd	t        j                         v st        j                  |      rt        j                  |      nd	t        j                  |      t        j                  |      d
z  }
dd|
iz  }|j                  |       |rddt        j                         v st        j                  t
              rt        j                  t
              ndt        j                        t        j                  	      dz  }|j                  |       t        j                  |d      i z  }dd|iz  }t        t        j                  |            d x}x}x}x}x}x}}	y )Nzfoo.txtxzbar.md   c              3   ,   K   | ]  \  }}|d k(    yw)rG   N ).0s_s      r   	<genexpr>z.test_root_multiple_unwanted.<locals>.<genexpr>D   s     :1qG|:s   r(   rH   rI   rJ   rK   rL   r2   z)%(py16)s
{%(py16)s = %(py12)s(%(py14)s)
}all)py12py14rP   r   zassert %(py19)spy19)r   r   r*   r3   rI   rw   r4   r5   r6   r7   r8   r9   r]   r^   r:   r;   )r
   r+   rJ   r=   r>   r?   r@   r`   @py_assert13rb   rA   rB   rg   @py_format18@py_format20s                  r   test_root_multiple_unwantedr~   ?   s=   	XB)^$(]s#
$$R(A:3q6:Q:6Q;::::3:::::::6Q::::::3:::3::::::q:::q:::6:::Q::::::::::3:::3:::::::::::::::::::::r   c                    t        |       }|dz  dz  }|j                  d       |dz  j                  d       |dz  j                          t        j                  } ||      }g }||k(  }|s
t        j                  d|fd	||f      d
t        j                         v st        j                  t              rt        j                  t              nd
t        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}}y )Nr   dev1Tr   r&   r'   qcr(   zY%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.check_teams_scatter
}(%(py3)s)
} == %(py8)sr*   r+   r,   r1   r2   r   r   r   r*   check_teams_scatterr4   r5   r6   r7   r8   r9   r:   r;   )	r
   r+   r#   r=   r>   r?   r@   rA   rB   s	            r   test_teams_allowed_no_warningr   K   s    	XB
WvAGGDG_  &X!!+!"%++%++++%++++++2+++2+++!++++++"+++"+++%++++++++++r   c                    t        |       }|dz  dz  }|j                  d       |dz  j                  d       t        j	                  |      }g }t        |      }d}||k(  }|}|r#|d   d   }	d	}
|	|
k(  }|}|rd}|d   d   }||v }|}|st        j                  d
|fd||f      dt        j                         v st        j                  t
              rt        j                  t
              nddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       |rt        j                  d
fd	
f      t        j                  |	      t        j                  |
      dz  }dd|iz  }|j                  |       |r_t        j                  dfdf      t        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       t        j                  |d      i z  }dd|iz  }t        t        j                  |            d x}x}x}x}x}x}	x}x}
x}x}}y )Nr   dev2Tr   zplan-task-999.1.mdrE   rF   r   WARNINGr(   rH   rI   rJ   rK   rL   r2   rM   rN   rQ   rR   rS   rU   rV   rY   rZ   r[   r\   )r   r   r   r*   r   rI   r4   r5   r6   r7   r8   r9   r]   r^   r:   r;   )r
   r+   r#   rJ   r=   r>   r?   r@   r`   ra   rb   rc   rd   re   rf   rA   rB   rg   rh   ri   rj   rk   rl   s                          r   test_teams_loose_file_warningr   T   s   	XB
WvAGGDG	))&1
r"AS3q6SQS6Q;S1Q47SiS7i/S4HSAaDQRGS4HG4SSSSS6QSSSSSS3SSS3SSSSSSqSSSqSSS6SSSQSSSSSSS7iSSS7SSSiSSSSSSS4HGSSS4HSSSGSSSSSSSSSSSSSSSr   c                    t        |       }|dz  dz  dz  }|j                  d       |dz  j                  d       t        j                  } ||      }g }||k(  }|s
t        j                  d|fd	||f      d
t        j                         v st        j                  t              rt        j                  t              nd
t        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}}y )Nr   dev3z
task-101.1Tr   zplan.mdr'   r(   r   r*   r+   r,   r1   r2   r   )	r
   r+   dr=   r>   r?   r@   rA   rB   s	            r   test_teams_task_dir_ignoredr   ]   s    	XB
Wv,AGGDG]t$!!+!"%++%++++%++++++2+++2+++!++++++"+++"+++%++++++++++r   c                    t        |       }t        |dz  dz  d       t        j                  } ||      }g }||k(  }|s
t	        j
                  d|fd||f      dt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      dt        j                         v st	        j                  |      rt	        j                  |      ndt	        j                  |      t	        j                  |      d	z  }d
d|iz  }t        t	        j                  |            d x}x}x}}y )Nr   z
recent.txt   r   r(   zY%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.check_tmp_old_files
}(%(py3)s)
} == %(py8)sr*   r+   r,   r1   r2   r   r$   r*   check_tmp_old_filesr4   r5   r6   r7   r8   r9   r:   r;   r<   s           r   test_tmp_recent_no_warningr   i   s    	XBel	"+!!+!"%++%++++%++++++2+++2+++!++++++"+++"+++%++++++++++r   c                    t        |       }t        |dz  dz  d       t        j                  |      }g }t	        |      }d}||k(  }|}|r#|d   d   }d}	||	k(  }
|
}|
rd}|d   d   }||v }|}|st        j                  d|fd	||f      d
t        j                         v st        j                  t              rt        j                  t              nd
dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       |rt        j                  d
fd	f      t        j                  |      t        j                  |	      dz  }dd|iz  }|j                  |       |
r_t        j                  dfdf      t        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       t        j                  |d      i z  }dd|iz  }t        t        j                  |            d x}x}x}x}x}x}x}
x}	x}x}}y )Nr   z	stale.log
   r   rF   r   r   r(   rH   rI   rJ   rK   rL   r2   rM   rN   rQ   rR   rS   rU   rV   rY   rZ   r[   r\   )r   r$   r*   r   rI   r4   r5   r6   r7   r8   r9   r]   r^   r:   r;   r_   s                         r   test_tmp_old_file_warningr   o   sl   	XBek	!+
r"AJ3q6JQJ6Q;J1Q47JiJ7i/JKJ1Q47JK74JJJJJ6QJJJJJJ3JJJ3JJJJJJqJJJqJJJ6JJJQJJJJJJJ7iJJJ7JJJiJJJJJJJK7JJJKJJJ7JJJJJJJJJJJJJJJr   c                    t        |       }t        |dz  dz  d       t        j                  } ||      }g }||k(  }|s
t	        j
                  d|fd||f      dt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      dt        j                         v st	        j                  |      rt	        j                  |      ndt	        j                  |      t	        j                  |      d	z  }d
d|iz  }t        t	        j                  |            dx}x}x}}y)u6   6.9일짜리는 7일 미초과이므로 경고 없음.r   zedge.txt   r   r(   r   r*   r+   r,   r1   r2   Nr   r<   s           r   "test_tmp_exactly_7_days_no_warningr   v   s    	XBej	 q)!!+!"%++%++++%++++++2+++2+++!++++++"+++"+++%++++++++++r   c                    t        |       }|dz  dz  j                  d       t        j                  } ||      }g }||k(  }|s
t	        j
                  d|fd||f      dt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      dt        j                         v st	        j                  |      rt	        j                  |      ndt	        j                  |      t	        j                  |      dz  }d	d
|iz  }t        t	        j                  |            d x}x}x}}y )Nr   zshort.pyzdx
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
r(   )zY%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.check_long_py_files
}(%(py3)s)
} == %(py8)sr*   r+   r,   r1   r2   )r   r   r*   check_long_py_filesr4   r5   r6   r7   r8   r9   r:   r;   r<   s           r   test_short_py_no_infor      s    	XB)^j ,,Z8!!+!"%++%++++%++++++2+++2+++!++++++"+++"+++%++++++++++r   c                    t        |       }|dz  dz  j                  d       t        j                  |      }g }t	        |      }d}||k(  }|}|r5|d   d   }d}	||	k(  }
|
}|
r"d}|d   d   }||v }|}|rd}|d   d   }||v }|}|sKt        j                  d|fd	||f      d
t        j                         v st        j                  t              rt        j                  t              nd
dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       |r!t        j                  d
fd	f      t        j                  |      t        j                  |	      dz  }dd|iz  }|j                  |       |
rt        j                  dfdf      t        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       |r_t        j                  dfdf      t        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       t        j                  |d      i z  }dd|iz  }t        t        j                  |            d x}x}x}x}x}x}x}
x}	x}x}x}x}x}}y )Nr   zlong.pya  x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
rF   r   INFOu   줄r(   rH   rI   rJ   rK   rL   r2   rM   rN   rQ   rR   rS   rU   rV   rY   rZ   )z%(py29)s in %(py32)s)r\   py32z%(py34)spy34zassert %(py37)spy37)r   r   r*   r   rI   r4   r5   r6   r7   r8   r9   r]   r^   r:   r;   )r
   r+   rJ   r=   r>   r?   r@   r`   ra   rb   rc   rd   re   rf   @py_assert28@py_assert31@py_assert30rA   rB   rg   rh   ri   rj   @py_format33@py_format35@py_format36@py_format38s                              r   test_long_py_infor      s   	XB)^i++K8
r"AZ3q6ZQZ6Q;Z1Q47ZfZ7f,ZZad1gZg1EZ%ZSTUVSWXYSZZ%SZJZZZZZ6QZZZZZZ3ZZZ3ZZZZZZqZZZqZZZ6ZZZQZZZZZZZ7fZZZ7ZZZfZZZZZZZgZZZZZZgZZZZZZZ%SZZZZ%ZZZSZZZZZZZZZZZZZZZZZr   c                    t        |       }|dz  dz  j                  d       t        j                  |      }d |D        }t	        |      }|sddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dz  }t        t        j                  |            d x}}y )Nr   big.pya  x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
c              3   *   K   | ]  \  }}d |v   yw)r   Nrr   )rs   ru   ms      r   rv   z*test_workers_py_checked.<locals>.<genexpr>   s     +Ax1}+s   ,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}anyr-   r   r   )r   r   r*   r   r   r6   r7   r4   r8   r9   r:   r;   )r
   r+   rJ   r=   @py_assert3@py_format5s         r   test_workers_py_checkedr      s    	XB)^h**;7
r"A+++3+++++++++3+++3++++++++++++++r   c                    t        |       }t        |dz  dz  dz  d       t        j                  } ||      }g }||k(  }|s
t	        j
                  d|fd||f      dt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      d	t        j                         v st	        j                  |      rt	        j                  |      nd	t	        j                  |      t	        j                  |      d
z  }dd|iz  }t        t	        j                  |            d x}x}x}}y )Nr   r   ztask-1.done   r   r(   z^%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.check_memory_events_done
}(%(py3)s)
} == %(py8)sr*   r+   r,   r1   r2   r   r$   r*   check_memory_events_doner4   r5   r6   r7   r8   r9   r:   r;   r<   s           r    test_memory_recent_done_no_errorr      s    	XBh	!M	1;&&0&r*0b0*b0000*b00000020002000&000000r000r000*000b0000000r   c                    t        |       }t        |dz  dz  dz  d       t        j                  |      }g }t	        |      }d}||k(  }|}|r#|d   d   }d}	||	k(  }
|
}|
rd}|d   d   }||v }|}|st        j                  d	|fd
||f      dt        j                         v st        j                  t              rt        j                  t              nddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       |rt        j                  d	
fd	f      t        j                  |      t        j                  |	      dz  }dd|iz  }|j                  |       |
r_t        j                  dfdf      t        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       t        j                  |d      i z  }dd|iz  }t        t        j                  |            d x}x}x}x}x}x}x}
x}	x}x}}y )Nr   r   ztask-old.doned   r   rF   r   rG   r(   rH   rI   rJ   rK   rL   r2   rM   rN   rQ   rR   rS   rU   rV   rY   rZ   r[   r\   )r   r$   r*   r   rI   r4   r5   r6   r7   r8   r9   r]   r^   r:   r;   r_   s                         r   test_memory_old_done_errorr      sq   	XBh	!O	3#>
##B'AL3q6LQL6Q;L1Q47LgL7g-L/LQqT!WL/W2LLLLL6QLLLLLL3LLL3LLLLLLqLLLqLLL6LLLQLLLLLLL7gLLL7LLLgLLLLLLL/WLLL/LLLWLLLLLLLLLLLLLLLr   c                    t        |       }t        |dz  dz  dz  d       t        j                  } ||      }g }||k(  }|s
t	        j
                  d|fd||f      dt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      d	t        j                         v st	        j                  |      rt	        j                  |      nd	t	        j                  |      t	        j                  |      d
z  }dd|iz  }t        t	        j                  |            d x}x}x}}y )Nr   r   ztask-1.event   r   r(   r   r*   r+   r,   r1   r2   r   r<   s           r   test_memory_non_done_ignoredr      s    	XBh	!N	2=&&0&r*0b0*b0000*b00000020002000&000000r000r000*000b0000000r   c                 0   t        |       }t        j                  |      g }t              }d}||k(  }|}|rd   d   }d}||k(  }	|	}|st	        j
                  d|fd||f      dt        j                         v st	        j                  t              rt	        j                  t              nddt        j                         v st	        j                        rt	        j                        ndt	        j                  |      t	        j                  |      dz  }
d	d
|
iz  }|j                  |       |r_t	        j
                  d	fdf      t	        j                  |      t	        j                  |      dz  }dd|iz  }|j                  |       t	        j                  |d      i z  }dd|iz  }t        t	        j                  |            d x}x}x}x}x}x}x}	}fddD        }t        |      }|sddt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      t	        j                  |      dz  }t        t	        j                  |            d x}}y )NrF   r   r   r(   rH   rI   rJ   rK   rL   r2   rM   rN   rQ   rR   zassert %(py21)srW   c              3   2   K   | ]  }|d    d   v   yw)r   rF   Nrr   )rs   krJ   s     r   rv   z'test_disk_usage_info.<locals>.<genexpr>   s     GqAaDG|Gs   )u	   디스크diskGBMBr   r   r   )r   r*   check_disk_usagerI   r4   r5   r6   r7   r8   r9   r]   r^   r:   r;   r   )r
   r+   r=   r>   r?   r@   r`   ra   rb   rc   rA   rB   rg   rh   r}   @py_format22r   r   rJ   s                     @r   test_disk_usage_infor      sl   	XB
BA,3q6,Q,6Q;,1Q47,f,7f,,,,,6Q,,,,,,3,,,3,,,,,,q,,,q,,,6,,,Q,,,,,,,7f,,,7,,,f,,,,,,,,,,,,,,G%FGG3GGGGGGGGG3GGG3GGGGGGGGGGGGGGr   c                 `   g d}t         j                  |      D cg c]  \  }}|	 }}}g d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}y c c}}w )N))r   i)rG   e)r   w)rG   r   r   r(   )z%(py1)s == %(py4)s)py1r   zassert %(py6)sr   )r*   sort_violationsr4   r5   r9   r:   r;   )	r
   rJ   rt   ru   r`   r   @py_assert2r   @py_format7s	            r   test_sort_orderr      sx    9A,,Q/0$!QA0P04PP04PPPPP04PPPP0PPP4PPPPPPPP0s   B*c                     t         j                  } ddg} | |      }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd	|iz  }t        t        j                  |            d x} x}x}x}}y )
N)rG   ro   )r   yrF   r(   zW%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.compute_exit_code
}(%(py4)s)
} == %(py9)sr*   r-   r   r   r   r	   assert %(py11)spy11
r*   compute_exit_coder4   r5   r6   r7   r8   r9   r:   r;   r=   r   @py_assert5@py_assert8r?   @py_format10@py_format12s          r   test_exit_code_errorr      s    H1A BH BCHqHCqHHHHCqHHHHHH2HHH2HHHHHH BHHHCHHHqHHHHHHHHr   c                     t         j                  } dg} | |      }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}y )	N)r   ro   r   r(   r   r*   r   r   r   r   r   s          r   test_exit_code_warning_onlyr      s    8!1 28 238q83q88883q88888828882888888 28883888q88888888r   c                     t         j                  } g } | |      }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}y )Nr   r(   r   r*   r   r   r   r   r   s          r   test_exit_code_no_violationsr      s    ((#(q(#q((((#q((((((2(((2(((((((((#(((q((((((((r   )r   N)A__doc__builtinsr6   _pytest.assertion.rewrite	assertionrewriter4   r!   sysr    pathlibr   pytestr   insertstr__file__r   importlib.util	importlibutilspec_from_file_locationr   r=   r`   loaderr   r7   r8   r9   @py_format3r]   r   r^   @py_format8r   r:   r;   module_from_spec_modexec_moduler*   r   intr$   rC   rm   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rr   r   r   <module>r      s    	 
    3tH~,,334 5 ..d8n++225HH	 u u      u   u    u                     ~~&&u-    	$ 4 t 3 4 2t 2 2P4 PD P;$ ;4 ;,D ,T ,TD TT T,$ ,4 ,, ,$ ,K K K, ,$ ,,D ,T ,[ [ [,d ,t ,1t 1 1M M$ M14 1D 1H4 HD HQd Qt Q
I9)r   