o
    rri                     @   s   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 dZ	G dd	 d	Z
G d
d dZdeje
 fddZedd ZdS )    )contextmanagerN)mock   )Shepherdc                   @   sD   e Zd Zdd ZddededefddZddededefd	d
ZdS )FakeWatcherc                 C   s
   i | _ d S Njobsself r   H/home/ubuntu/.local/lib/python3.10/site-packages/dora/tests/fake_shep.py__init__      
zFakeWatcher.__init__standardjob_idmodereturnc                 C   s
   | j | S r   r   r   r   r   r   r   r   	get_state   r   zFakeWatcher.get_statec                 C   s   |  |dv S )N)	COMPLETEDFAILED	CANCELLED)r   r   r   r   r   is_done   s   zFakeWatcher.is_doneN)r   )__name__
__module____qualname__r   strr   boolr   r   r   r   r   r      s    r   c                   @   sF   e Zd Ze Zdd Zedd Zejde	fddZedd Z
d	S )
FakeJobc                 C   s   t t| jj| _d| _d S )NUNKNOWN)r   lenwatcherr	   r   _stater
   r   r   r   r      s   
zFakeJob.__init__c                 C   s   | j | jS r   )r"   r   r   r
   r   r   r   r#   "   s   zFakeJob._statestatec                 C   s   || j j| j< d S r   )r"   r	   r   )r   r$   r   r   r   r#   &   s   c                 C   s   | j S r   r#   r
   r   r   r   r$   *   s   zFakeJob.stateN)r   r   r   r   r"   r   propertyr#   setterr   r$   r   r   r   r   r      s    
r   c                   @   s6   e Zd Zdd Zdd ZdefddZedd	 Zd
S )FakeExecutorc                 O      d S r   r   r   argskwargsr   r   r   r   0      zFakeExecutor.__init__c                 K   r)   r   r   )r   r,   r   r   r   update_parameters3   r-   zFakeExecutor.update_parametersr   c                 O   s   t  S r   )r   r*   r   r   r   submit6   s   zFakeExecutor.submitc                 c   s    d V  d S r   r   r
   r   r   r   batch9   s   
zFakeExecutor.batchN)	r   r   r   r   r.   r   r/   r   r0   r   r   r   r   r(   /   s    r(   r	   c                 C   s   |D ]}d|_ qd S )Nr   r%   )r   r	   jobr   r   r   _fake_cancel>   s   r2   c                
   c   s    t jtdt8 t jtdt z	d V  W i tj_	ni tj_	w W d    n1 s,w   Y  W d    d S W d    d S 1 sDw   Y  d S )NSlurmExecutor_cancel)
r   patchobjectsubmititr(   r   r2   r   r"   r	   r   r   r   r   	mock_shepC   s   "r8   )
contextlibr   typingtpunittestr   r7   shepr   r   r   r(   Listr2   r8   r   r   r   r   <module>   s   