
    Pi	                     .   d Z ddlZddlZddlmZ ej
                  j                  d e ee      j                  j                               ddl
mZmZ  G d dej                        Z G d dej                        Zed	k(  r ej"                          yy)
u%   security_patterns.py 단위 테스트    N)Path)RISK_LEVELSVULNERABILITY_PATTERNSc                   "    e Zd ZdZd Zd Zd Zy)TestVulnerabilityPatternsu   취약점 패턴 테스트c                     | j                  t        t              d       | j                  dt               | j                  dt               | j                  dt               y)u-   취약점 패턴이 로드되었는지 확인   SQL InjectionXSS (Cross-Site Scripting)Hardcoded SecretN)assertEquallenr   assertInselfs    ]/home/jay/workspace/.worktrees/task-2117-dev1/memory/red_team/tests/test_security_patterns.py"test_vulnerability_patterns_loadedz<TestVulnerabilityPatterns.test_vulnerability_patterns_loaded   sG    34a8o'=>24JK(*@A    c                 p    t        j                         D ]  \  }}| j                  |t        | d       ! y)u+   각 패턴이 리스트 형태인지 확인z should be a listN)r   itemsassertIsInstancelist)r   	vuln_typepatternss      r   %test_vulnerability_patterns_structurez?TestVulnerabilityPatterns.test_vulnerability_patterns_structure   s;    #9#?#?#A 	SIx!!(DYK?P2QR	Sr   c                 F    g d}|D ]  }| j                  |t                y)u1   모든 취약점 타입이 존재하는지 확인)r
   r   r   zCode InjectionzPath TraversalzCommand InjectionzInsecure DependenciesN)r   r   )r   expected_typesr   s      r    test_vulnerability_pattern_typesz:TestVulnerabilityPatterns.test_vulnerability_pattern_types   s)    
 ( 	=IMM)%;<	=r   N)__name__
__module____qualname____doc__r   r   r    r   r   r   r      s    $BS
=r   r   c                   "    e Zd ZdZd Zd Zd Zy)TestRiskLevelsu   리스크 레벨 테스트c                     | j                  t        t              d       | j                  dt               | j                  dt               | j                  dt               | j                  dt               y)u-   리스크 레벨이 로드되었는지 확인   lowmediumhighcriticalN)r   r   r   r   r   s    r   test_risk_levels_loadedz&TestRiskLevels.test_risk_levels_loaded/   sO    [)1-e[)h,fk*j+.r   c                     | j                  t        d   d       | j                  t        d   d       | j                  t        d   d       | j                  t        d   d       y	)
u.   리스크 레벨 순서가 올바른지 확인r(   r   r)      r*      r+      N)r   r   r   s    r   test_risk_levels_orderz%TestRiskLevels.test_risk_levels_order7   sV    U+Q/X.2V,a0Z0!4r   c                 h    t        j                         D ]  \  }}| j                  |t                y)u+   리스크 레벨 값이 정수인지 확인N)r   r   r   int)r   levelvalues      r   test_risk_levels_valuesz&TestRiskLevels.test_risk_levels_values>   s.    '--/ 	.LE5!!%-	.r   N)r   r    r!   r"   r,   r1   r6   r#   r   r   r%   r%   ,   s    $/5.r   r%   __main__)r"   sysunittestpathlibr   pathinsertstr__file__parentsecurity_patternsr   r   TestCaser   r%   r   mainr#   r   r   <module>rC      s{    + 
   3tH~,,334 5 A= 1 1 =<.X&& .0 zHMMO r   