
    /it	                         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
Z
ddlmZ ddlmZmZ ej                   j#                  dd       ddlmZ d Zd Zd	 Zd
 Zd Zy)u$   P1-2 읽기/쓰기 격리 테스트.    N)Path)patch	MagicMockz/home/jay/workspace)
cmd_createc                      t        dddd      } | d   }d }||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      d	z  }d
d|iz  }t	        t        j
                  |            d x}x}}| d   }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 )Nz/tmp/test-projectztest-rw-001dev1T)project_pathtask_idteam_id	read_onlyworktree_pathis)z%(py1)s is %(py4)s)py1py4zassert %(py6)spy6statusskipped==)z%(py1)s == %(py4)s)r   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanation)result@py_assert0@py_assert3@py_assert2@py_format5@py_format7s         ./home/jay/workspace/tests/test_rw_isolation.pytest_read_agent_no_worktreer#      s    (	F /"*d*"d****"d***"***d*******((y(y((((y((((((y(((((((    c                     ddl } | j                  t              }|j                  d   }|j                  }d}||u }|st        j                  d|fd||f      t        j                  |      t        j                  |      t        j                  |      dz  }dd	|iz  }t        t        j                  |            dx}x}x}}y)
u)   read_only 기본값이 False인지 확인r   Nr   Fr   )z/%(py3)s
{%(py3)s = %(py1)s.default
} is %(py6)sr   py3r   assert %(py8)spy8)
inspect	signaturer   
parametersdefaultr   r   r   r   r   )r*   sigr   r   @py_assert5@py_assert4r!   @py_format9s           r"   (test_write_agent_default_read_only_falser2      s    


J
'C>>+&7&..7%7.%7777.%777&777.777%7777777r$   c                     ddl m }  ddl}|j                  |       }|j                  d   }|j                  }d}||k(  }|st        j                  d|fd||f      t        j                  |      t        j                  |      t        j                  |      dz  }d	d
|iz  }t        t        j                  |            dx}x}x}}y)u;   dispatch.py의 --agent-type 기본값이 write인지 확인r   )dispatchN
agent_typewriter   )z/%(py3)s
{%(py3)s = %(py1)s.default
} == %(py6)sr&   r(   r)   )
r4   r*   r+   r,   r-   r   r   r   r   r   )	r4   r*   r.   r   r   r/   r0   r!   r1   s	            r"    test_default_agent_type_is_writer7   $   s     "


H
%C>>,':'//:7:/7::::/7:::':::/:::7:::::::r$   c                    | dz  }dddid}|j                  t        j                  |      d       dd	lm}  |t        |      
      }|j                  }d} ||      }d}||u }	|	st        j                  d|	fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      dz  }
dd|
iz  }t        t        j                  |            dx}x}x}x}	}d}|j                  d      r|}nd}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)uD   rw_isolation_enabled=false 시 agent_type=read여도 write로 동작zfeature_flags.jsonz1.0rw_isolation_enabledF)schema_versionflagsutf-8encodingr   )FeatureFlagLoader)pathr   )zP%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.is_enabled
}(%(py4)s)
} is %(py9)sloader)py0py2r   r   py9zassert %(py11)spy11Nreadr6   r   )z%(py0)s == %(py3)s	effective)rB   r'   assert %(py5)spy5)
write_textjsondumpsutils.feature_flagsr?   str
is_enabledr   r   @py_builtinslocals_should_repr_global_namer   r   r   )tmp_path
flags_filedatar?   rA   @py_assert1r   r/   @py_assert8@py_assert7@py_format10@py_format12r5   rG   r   @py_format4@py_format6s                    r"   test_flag_disabled_always_writer]   .   sc   00J"E
D $**T*W=5C
O4F=3=34==4====4======6===6======3===4==========J/0		9999r$   c                     d} t        |       j                  d      }d}||v }|st        j                  d|fd||f      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      nddz  }d	d
|iz  }t        t        j                  |            d x}}d}||v }|st        j                  d|fd||f      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      nddz  }d	d
|iz  }t        t        j                  |            d x}}d}||v }|st        j                  d|fd||f      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      nddz  }d	d
|iz  }t        t        j                  |            d x}}y )Nz./home/jay/workspace/prompts/DIRECT-WORKFLOW.mdr<   r=   u   섹션 5)in)z%(py1)s in %(py3)scontent)r   r'   rH   rI   u!   읽기/쓰기 에이전트 격리r9   )
r   	read_textr   r   r   rP   rQ   rR   r   r   )workflow_pathr`   r   r   r[   r\   s         r"   test_workflow_section5_existsrc   F   s0   DM=!++W+=G :    :   :                .9.'9999.'999.999999'999'9999999!,!W,,,,!W,,,!,,,,,,W,,,W,,,,,,,r$   )__doc__builtinsrP   _pytest.assertion.rewrite	assertionrewriter   sysrK   ospytestpathlibr   unittest.mockr   r   r@   insertscripts.worktree_managerr   r#   r2   r7   r]   rc    r$   r"   <module>rq      sM    *   
  	   * ( ) /)8; 0-r$   