
    !Ti                     >   d Z ddlZddlmc mZ ddlZddlmZ ddl	m
Z
 ej                  j                  d e e
e      j                  j                  j                  j                  dz               deddfd	Zd
edefdZd Zd Zd Zd Zd Zd Zd Zd Zd Zy)u   
task-1124.1: _enrich_bot_activity()의 논리적 팀(marketing, consulting) 지원 테스트

TDD RED 단계: 수정 전에 실행하면 실패해야 함
    N)datetime)Path	dashboardtasksreturn
DataLoaderc                 x    ddl m}  |t        d            }d| i|_        dddiddiddiddiddidi|_        |S )	u]   테스트용 DataLoader 인스턴스 생성 (실제 파일 없이 in-memory 데이터 주입)r   )r   z/tmp/fake-workspacer   botsstatusidle)	marketing
consultingdesign
publishingdev1)serverr   r   	task_databot_activity_data)r   r   loaders      D/home/jay/workspace/teams/dev5/tests/test_bot_activity_enrichment.py_make_loader_with_tasksr      sc    !234F'F"F+#V,(#V,v&
 F M    team_idc                 V    d| |  dt        j                         j                         dS )u+   stale하지 않은 running 태스크 생성runningu    테스트 작업)r   r   description
start_time)r   now	isoformat)r   s    r   _running_taskr       s1     !"34lln..0	 r   c                     t        dt        d      i      } | j                         }|j                  di       }d}||v }|st	        j
                  d|fd||f      t	        j                  |      dt        j                         v st	        j                  |      rt	        j                  |      nddz  }t	        j                  d      dz   d	|iz  }t        t	        j                  |            d
x}}|d   d   }d}||u }|st	        j
                  d|fd||f      t	        j                  |      t	        j                  |      dz  }t	        j                  d      dz   d|iz  }	t        t	        j                  |	            d
x}x}}y
)uH   marketing 팀에 running task가 있으면 has_running_tasks=True 반환ztask-m1r   r
   inz%(py1)s in %(py3)spy1py3!   marketing 봇이 결과에 없음
>assert %(py5)spy5Nhas_running_tasksTisz%(py1)s is %(py4)sr&   py4uB   marketing 팀에 running task가 있는데 has_running_tasks=False
>assert %(py6)spy6r   r    _enrich_bot_activityget
@pytest_ar_call_reprcompare	_saferepr@py_builtinslocals_should_repr_global_name_format_assertmsgAssertionError_format_explanation
r   resultr
   @py_assert0@py_assert2@py_format4@py_format6@py_assert3@py_format5@py_format7s
             r   2test_marketing_has_running_tasks_true_when_runningrH   *   s*   $i{1K%LMF((*F::fb!DC;$CCC;$CCC;CCCCCC$CCC$CCCC CCCCCCC01 T 1T9  1T    2    6:    	M     r   c                     t        i       } | j                         }|j                  di       }d}||v }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      nddz  }t        j                  d      dz   d|iz  }t        t        j                  |            d	x}}|d   d
   }d}||u }|st        j                  d|fd||f      t        j
                  |      t        j
                  |      dz  }t        j                  d      dz   d|iz  }	t        t        j                  |	            d	x}x}}y	)uI   marketing 팀에 running task가 없으면 has_running_tasks=False 반환r
   r   r"   r$   r%   r(   r)   r*   Nr+   Fr,   r.   r/   uA   marketing 팀에 running task가 없는데 has_running_tasks=Truer1   r2   r   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   s
             r   4test_marketing_has_running_tasks_false_when_no_tasksrK   5   s    $R(F((*F::fb!DC;$CCC;$CCC;CCCCCC$CCC$CCCC CCCCCCC01 U 1U:  1U    2    6;    	L     r   c                     t        dt        d      i      } | j                         }|j                  di       }d}||v }|st	        j
                  d|fd||f      t	        j                  |      dt        j                         v st	        j                  |      rt	        j                  |      nddz  }t	        j                  d      dz   d	|iz  }t        t	        j                  |            d
x}}|d   d   }d}||u }|st	        j
                  d|fd||f      t	        j                  |      t	        j                  |      dz  }t	        j                  d      dz   d|iz  }	t        t	        j                  |	            d
x}x}}y
)uI   consulting 팀에 running task가 있으면 has_running_tasks=True 반환ztask-c1r   r
   r"   r$   r%   "   consulting 봇이 결과에 없음r)   r*   Nr+   Tr,   r.   r/   uC   consulting 팀에 running task가 있는데 has_running_tasks=Falser1   r2   r3   r?   s
             r   3test_consulting_has_running_tasks_true_when_runningrN   B   *   $i|1L%MNF((*F::fb!DE<4EEE<4EEE<EEEEEE4EEE4EEEE!EEEEEEE12 d 2d:  2d    3    7;    	N     r   c                     t        i       } | j                         }|j                  di       }d}||v }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      nddz  }t        j                  d      dz   d|iz  }t        t        j                  |            d	x}}|d   d
   }d}||u }|st        j                  d|fd||f      t        j
                  |      t        j
                  |      dz  }t        j                  d      dz   d|iz  }	t        t        j                  |	            d	x}x}}y	)uJ   consulting 팀에 running task가 없으면 has_running_tasks=False 반환r
   r   r"   r$   r%   rM   r)   r*   Nr+   Fr,   r.   r/   uB   consulting 팀에 running task가 없는데 has_running_tasks=Truer1   r2   rJ   r?   s
             r   5test_consulting_has_running_tasks_false_when_no_tasksrQ   M       $R(F((*F::fb!DE<4EEE<4EEE<EEEEEE4EEE4EEEE!EEEEEEE12 e 2e;  2e    3    7<    	M     r   c                     t        dt        d      i      } | j                         }|j                  di       }d}||v }|st	        j
                  d|fd||f      t	        j                  |      dt        j                         v st	        j                  |      rt	        j                  |      nddz  }t	        j                  d      dz   d	|iz  }t        t	        j                  |            d
x}}|d   d   }d}||u }|st	        j
                  d|fd||f      t	        j                  |      t	        j                  |      dz  }t	        j                  d      dz   d|iz  }	t        t	        j                  |	            d
x}x}}y
)uE   design 팀에 running task가 있으면 has_running_tasks=True 반환task-d1r   r
   r"   r$   r%      design 봇이 결과에 없음r)   r*   Nr+   Tr,   r.   r/   u?   design 팀에 running task가 있는데 has_running_tasks=Falser1   r2   r3   r?   s
             r   /test_design_has_running_tasks_true_when_runningrV   \   s)   $ix1H%IJF((*F::fb!D=8t===8t===8======t===t===========>-. $ .$6  .$    /    37    	J     r   c                     t        i       } | j                         }|j                  di       }d}||v }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      nddz  }t        j                  d      dz   d|iz  }t        t        j                  |            d	x}}|d   d
   }d}||u }|st        j                  d|fd||f      t        j
                  |      t        j
                  |      dz  }t        j                  d      dz   d|iz  }	t        t        j                  |	            d	x}x}}y	)uF   design 팀에 running task가 없으면 has_running_tasks=False 반환r
   r   r"   r$   r%   rU   r)   r*   Nr+   Fr,   r.   r/   u>   design 팀에 running task가 없는데 has_running_tasks=Truer1   r2   rJ   r?   s
             r   1test_design_has_running_tasks_false_when_no_tasksrX   g   s   $R(F((*F::fb!D=8t===8t===8======t===t===========>-. % .%7  .%    /    38    	I     r   c                     t        dt        d      i      } | j                         }|j                  di       }d}||v }|st	        j
                  d|fd||f      t	        j                  |      dt        j                         v st	        j                  |      rt	        j                  |      nddz  }t	        j                  d      dz   d	|iz  }t        t	        j                  |            d
x}}|d   d   }d}||u }|st	        j
                  d|fd||f      t	        j                  |      t	        j                  |      dz  }t	        j                  d      dz   d|iz  }	t        t	        j                  |	            d
x}x}}y
)uI   publishing 팀에 running task가 있으면 has_running_tasks=True 반환ztask-p1r   r
   r"   r$   r%   "   publishing 봇이 결과에 없음r)   r*   Nr+   Tr,   r.   r/   uC   publishing 팀에 running task가 있는데 has_running_tasks=Falser1   r2   r3   r?   s
             r   3test_publishing_has_running_tasks_true_when_runningr[   t   rO   r   c                     t        i       } | j                         }|j                  di       }d}||v }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      nddz  }t        j                  d      dz   d|iz  }t        t        j                  |            d	x}}|d   d
   }d}||u }|st        j                  d|fd||f      t        j
                  |      t        j
                  |      dz  }t        j                  d      dz   d|iz  }	t        t        j                  |	            d	x}x}}y	)uJ   publishing 팀에 running task가 없으면 has_running_tasks=False 반환r
   r   r"   r$   r%   rZ   r)   r*   Nr+   Fr,   r.   r/   uB   publishing 팀에 running task가 없는데 has_running_tasks=Truer1   r2   rJ   r?   s
             r   5test_publishing_has_running_tasks_false_when_no_tasksr]      rR   r   c                     t        dt        d      i      } | j                         }|j                  di       }d}||v }|st	        j
                  d|fd||f      t	        j                  |      dt        j                         v st	        j                  |      rt	        j                  |      nddz  }t	        j                  d      d	z   d
|iz  }t        t	        j                  |            dx}}|d   d   }d}||u }|st	        j
                  d|fd||f      t	        j                  |      t	        j                  |      dz  }t	        j                  d      dz   d|iz  }	t        t	        j                  |	            dx}x}}y)u8   기존 dev1-team 매핑이 깨지지 않았는지 확인rT   z	dev1-teamr
   r   r"   r$   r%   u   dev1 봇이 결과에 없음r)   r*   Nr+   Tr,   r.   r/   u>   dev1-team에 running task가 있는데 has_running_tasks=Falser1   r2   r3   r?   s
             r   #test_existing_dev1_team_still_worksr_      s(   $i{1K%LMF((*F::fb!D96T>9996T9996999999T999T99999999999<+,  ,4  ,    -    15    	I     r   )__doc__builtinsr9   _pytest.assertion.rewrite	assertionrewriter6   sysr   pathlibr   pathinsertstr__file__parentdictr   r    rH   rK   rN   rQ   rV   rX   r[   r]   r_    r   r   <module>rn      s   
  
   3tH~,,33::AAKOP Q4 L $3 4 r   