
    +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	m
Z
 ddlZ e
ej                  j                  dd            Z ee      ej                   vr"ej                   j#                  d ee             ddlmZ  G d d      Zy)	u`   
test_validate_composite.py

_validate_composite_teams() 단위 테스트 (아르고스 작성)
    N)PathWORKSPACE_ROOTz/home/jay/workspace)_validate_composite_teamsc                   R    e 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y)TestValidateCompositeTeamsu6   _validate_composite_teams() 유효성 검증 테스트c                 j   t        d      }ddg}||k(  }|st        j                  d|fd||f      dt        j                         v st        j
                  |      rt        j                  |      ndt        j                  |      dz  }dd	|iz  }t        t        j                  |            d x}}y )
Nzmarketing,design	marketingdesign==z%(py0)s == %(py3)sresultpy0py3assert %(py5)spy5	r   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationselfr   @py_assert2@py_assert1@py_format4@py_format6s         4/home/jay/workspace/tests/test_validate_composite.pytest_valid_two_teamsz/TestValidateCompositeTeams.test_valid_two_teams   sn    *+=>%x00v00000v0000000v000v00000000000    c                 j   t        d      }g d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j
                  |      rt        j                  |      ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}}y )	Nzmarketing,design,consulting)r	   r
   
consultingr   r   r   r   r   r   r   r   s         r#   test_valid_three_teamsz1TestValidateCompositeTeams.test_valid_three_teams   si    *+HI>>v>>>>>v>>>>>>>v>>>v>>>>>>>>>>>r%   c                 j   t        d      }ddg}||k(  }|st        j                  d|fd||f      dt        j                         v st        j
                  |      rt        j                  |      ndt        j                  |      dz  }dd	|iz  }t        t        j                  |            d x}}y )
Nzmarketing , designr	   r
   r   r   r   r   r   r   r   r   s         r#   test_valid_with_spacesz1TestValidateCompositeTeams.test_valid_with_spaces   sn    *+?@%x00v00000v0000000v000v00000000000r%   c                 z    t        j                  t        d      5  t        d       d d d        y # 1 sw Y   y xY w)N   2개 이상matchr	   pytestraises
ValueErrorr   r   s    r#   test_single_team_raisesz2TestValidateCompositeTeams.test_single_team_raises#   s-    ]]:]; 	3%k2	3 	3 	3   1:c                 z    t        j                  t        d      5  t        d       d d d        y # 1 sw Y   y xY w)Nr,   r-    r/   r3   s    r#   test_empty_string_raisesz3TestValidateCompositeTeams.test_empty_string_raises'   s-    ]]:]; 	*%b)	* 	* 	*r5   c                 z    t        j                  t        d      5  t        d       ddd       y# 1 sw Y   yxY w)u8   연속 쉼표는 빈 토큰 필터링 후 팀 수 검증r,   r-   z,,,marketing,,,Nr/   r3   s    r#   test_consecutive_commasz2TestValidateCompositeTeams.test_consecutive_commas+   s.    ]]:]; 	9%&78	9 	9 	9r5   c                 z    t        j                  t        d      5  t        d       d d d        y # 1 sw Y   y xY w)Nu   최대r-   z&marketing,design,consulting,publishingr/   r3   s    r#   test_four_teams_exceeds_maxz6TestValidateCompositeTeams.test_four_teams_exceeds_max0   s2    ]]:X6 	P%&NO	P 	P 	Pr5   c                 z    t        j                  t        d      5  t        d       d d d        y # 1 sw Y   y xY w)N   알 수 없는 팀 IDr-   zmarketing,unknown_teamr/   r3   s    r#   test_unknown_team_raisesz3TestValidateCompositeTeams.test_unknown_team_raises4   s3    ]]:-DE 	@%&>?	@ 	@ 	@r5   c                 z    t        j                  t        d      5  t        d       d d d        y # 1 sw Y   y xY w)Nr>   r-   zmarketing,dev1-teamr/   r3   s    r#   test_dev_team_not_allowedz4TestValidateCompositeTeams.test_dev_team_not_allowed8   s/    ]]:-DE 	=%&;<	= 	= 	=r5   c                 z    t        j                  t        d      5  t        d       d d d        y # 1 sw Y   y xY w)Nu   중복r-   zmarketing,marketingr/   r3   s    r#   test_duplicate_teams_raisesz6TestValidateCompositeTeams.test_duplicate_teams_raises<   s.    ]]:X6 	=%&;<	= 	= 	=r5   c                 z   t        d      }t        |t              }|sd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dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      dz  }t        t        j                  |            d }t        |      }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  }t        t        j                  |            d x}x}}y )Nzconsulting,publishingz5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}
isinstancer   list)r   py1py2py4   r   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)slen)r   rG   r   py6zassert %(py8)spy8)r   rE   rF   r   r   r   r   r   r   r   rK   r   )	r   r   @py_assert3@py_format5r   @py_assert5@py_assert4@py_format7@py_format9s	            r#   test_returns_listz,TestValidateCompositeTeams.test_returns_list@   s!   *+BC&$''''''''z'''z''''''&'''&''''''$'''$''''''''''6{a{a{ass66{ar%   N)__name__
__module____qualname____doc__r$   r(   r*   r4   r8   r:   r<   r?   rA   rC   rT    r%   r#   r   r      s>    @1?13*9
P@== r%   r   )rX   builtinsr   _pytest.assertion.rewrite	assertionrewriter   ossyspathlibr   r0   environget
_WORKSPACEstrpathinsertdispatchr   r   rY   r%   r#   <module>rh      sj     	 
  "**..!13HIJ
z?#(("HHOOAs:' ./  / r%   