
    ip                         d 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mZ  G d d      Zy)u>   회귀 테스트 - 기존 기능이 깨지지 않는지 확인    N)Path)CodeReviewerc                   Z    e Zd ZdZ ej
                  d      d        Zd Zd Zd Z	d Z
y	)
TestRegressionu   회귀 테스트 클래스T)autousec                 "    t               | _        y)u   테스트 설정N)r   reviewer)selfs    </home/jay/workspace/memory/red_team/tests/test_regression.pysetupzTestRegression.setup   s     %    c                    t        j                  ddd      5 }|j                  d       |j                  }ddd       	 | j                  j                        }t        d |d   D              sJ |d	   d
v sJ 	 t        |      j                          y# 1 sw Y   `xY w# t              j                          w xY w)u9   회귀: SQL Injection이 여전히 감지되는지 확인w.pyFmodesuffixdeletez7query = "SELECT * FROM users WHERE id = " + user_input
Nc              3   ,   K   | ]  }|d    dk(    yw)typezSQL InjectionN .0vulns     r   	<genexpr>zCTestRegression.test_sql_injection_still_detected.<locals>.<genexpr>!   s     ]4tF|6]   vulnerabilities
risk_level)highcritical	tempfileNamedTemporaryFilewritenamer	   reviewanyr   unlinkr
   f	temp_pathresults       r   !test_sql_injection_still_detectedz0TestRegression.test_sql_injection_still_detected   s    ((c%N 	RSGGNOI		%]])))4F ]6J[C\]]]],'+????O""$	 	 O""$s   B ;B" B"B=c                    t        j                  ddd      5 }|j                  d       |j                  }ddd       	 | j                  j                        }t        d |d   D              sJ |d	   d
k(  sJ 	 t        |      j                          y# 1 sw Y   axY w# t              j                          w xY w)u<   회귀: Hardcoded Secret이 여전히 감지되는지 확인r   r   Fr   zpassword = '123456'
Nc              3   ,   K   | ]  }|d    dk(    yw)r   zHardcoded SecretNr   r   s     r   r   zFTestRegression.test_hardcoded_secret_still_detected.<locals>.<genexpr>0   s     `dtF|'99`r   r   r   r   r!   r)   s       r   $test_hardcoded_secret_still_detectedz3TestRegression.test_hardcoded_secret_still_detected&   s    ((c%N 	RSGG+,I		%]])))4F `fM^F_````,'6111O""$	 	 O""$s   B <B# B #B>c                 n   t        j                  ddd      5 }|j                  d       |j                  }ddd       	 | j                  j                        }t        d |d   D              sJ 	 t        |      j                          y# 1 sw Y   WxY w# t              j                          w xY w)	u/   회귀: XSS가 여전히 감지되는지 확인r   r   Fr   zLfrom flask import render_template_string
render_template_string(user_input)
Nc              3   ,   K   | ]  }|d    dk(    yw)r   zXSS (Cross-Site Scripting)Nr   r   s     r   r   z9TestRegression.test_xss_still_detected.<locals>.<genexpr>@   s     jtF|'CCjr   r   r!   r)   s       r   test_xss_still_detectedz&TestRegression.test_xss_still_detected5   s    ((c%N 	RSGGdeI	
	%]])))4F jPVWhPijjjjO""$	 	 O""$s   B 2B BB4c                 R   t        j                  ddd      5 }|j                  d       |j                  }ddd       	 | j                  j                        }|d   du sJ 	 t        |      j                          y# 1 sw Y   IxY w# t              j                          w xY w)	u9   회귀: 정상 파일이 여전히 통과하는지 확인r   r   Fr   z# Normal code
pass
NpassedT)r"   r#   r$   r%   r	   r&   r   r(   r)   s       r   test_normal_file_still_passesz,TestRegression.test_normal_file_still_passesD   s    ((c%N 	RSGG+,I		%]])))4F (#t+++O""$	 	 O""$s   A? $B ?BB&N)__name__
__module____qualname____doc__pytestfixturer   r-   r0   r3   r6   r   r   r   r   r      s6    $V^^D!' "'%%%%r   r   )r:   sysr"   pathlibr   r;   pathinsertstr__file__parentcode_reviewerr   r   r   r   r   <module>rE      sJ    D 
    3tH~,,334 5 &A% A%r   