
    mi                         d dl mZ d dlZd dlmZ d dlZddlmZ  G d d      Z	 G d d	      Z
 G d
 d      Zdej                  e
   fdZed        Zy)    )contextmanagerN)mock   )Shepherdc                   >    e Zd Zd ZddededefdZddededefdZy)	FakeWatcherc                     i | _         y Njobsselfs    N/var/www/stems/demucs_env/lib/python3.12/site-packages/dora/tests/fake_shep.py__init__zFakeWatcher.__init__   s	    	    job_idmodereturnc                      | j                   |   S r
   r   r   r   r   s      r   	get_statezFakeWatcher.get_state   s    yy  r   c                 (    | j                  |      dv S )N)	COMPLETEDFAILED	CANCELLED)r   r   s      r   is_donezFakeWatcher.is_done   s    ~~f%)MMMr   N)standard)__name__
__module____qualname__r   strr   boolr    r   r   r   r      s?    ! !3 ! !Nc N Nd Nr   r   c                   j    e Zd Z e       Zd Zed        Zej                  de	fd       Zed        Z
y)FakeJobc                 l    t        t        | j                  j                              | _        d| _        y )NUNKNOWN)r!   lenwatcherr   r   _stater   s    r   r   zFakeJob.__init__   s$    #dll//01r   c                 L    | j                   j                  | j                        S r
   )r)   r   r   r   s    r   r*   zFakeJob._state"   s    ||%%dkk22r   statec                 J    || j                   j                  | j                  <   y r
   )r)   r   r   )r   r,   s     r   r*   zFakeJob._state&   s    ).$++&r   c                     | j                   S r
   r*   r   s    r   r,   zFakeJob.state*   s    {{r   N)r   r   r    r   r)   r   propertyr*   setterr!   r,   r#   r   r   r%   r%      sU    mG  3 3 ]]/C / /  r   r%   c                   4    e Zd Zd Zd ZdefdZed        Zy)FakeExecutorc                      y r
   r#   r   argskwargss      r   r   zFakeExecutor.__init__0       r   c                      y r
   r#   )r   r7   s     r   update_parameterszFakeExecutor.update_parameters3   r8   r   r   c                     t               S r
   )r%   r5   s      r   submitzFakeExecutor.submit6   s
    yr   c              #      K   d  y wr
   r#   r   s    r   batchzFakeExecutor.batch9   s	     s   N)	r   r   r    r   r:   r%   r<   r   r>   r#   r   r   r3   r3   /   s,       r   r3   r   c                      |D ]	  }d|_          y )Nr   r/   )r   r   jobs      r   _fake_cancelrA   >   s     ! 
!r   c               #   n  K   t         j                  j                  t        dt              5  t         j                  j                  t
        dt              5  	 d  i t        j                  _	        	 d d d        d d d        y # i t        j                  _	        w xY w# 1 sw Y   ,xY w# 1 sw Y   y xY ww)NSlurmExecutor_cancel)
r   patchobjectsubmititr3   r   rA   r%   r)   r   r#   r   r   	mock_sheprH   C   s     			8_l	C *ZZxLA 	**')$		** *
 (*$		* 	** *sL   *B5*B)BBB2B):	B5BBB&	"B))B2.B5)
contextlibr   typingtpunittestr   rG   shepr   r   r%   r3   ListrA   rH   r#   r   r   <module>rO      s_    &    N N ( !RWWW- !
 * *r   