
    "lj+                         d dl mZm Z mZ d dlmZmZmZ d dlmZ d dl	m
Z
  e ddddd e	      Zd
 ZddZddZddZddZddZddZy)    )UTCdatetime	timedelta)HealthStatusObservationStatusOperationalState)JobDescriptor)normalize_statusi           )tzinfoc                  J    dddddd}|j                  |        t        di |S )Nzworker.process.mainWorkertestworker<   )job_keynamesource_typejob_typestale_after_seconds )updater	   )kwargsvaluess     tests/unit/test_status.pyjobr   
   s6    .QWem  GI  JF
MM&"6""    Nc                      t        t               dt        t        d      z
  dt              } | j                  t
        j                  k(  sJ y )NT
   secondsprocess_existsheartbeat_at)r
   r   NOWr   health_statusr   HEALTHYstatuss    r   test_current_heartbeat_healthyr,      s>    cecT]fhTiNi%jlopF<#7#7777r   c                      t        t               dt        t        d      z
  dt              } | j                  t
        j                  k(  sJ | j                  t        j                  k(  sJ y )NTx   r"   r$   )
r
   r   r'   r   operational_stater   RUNNINGr(   r   STALEr*   s    r   test_old_heartbeat_staler2      sY    cecT]fiTjNj%kmpqF##'7'?'????<#5#5555r   c                  x    t        t               ddit              } | j                  t        j
                  k(  sJ y )N	exit_code   )r
   r   r'   r(   r   FAILEDr*   s    r   test_nonzero_exit_failedr7      s1    cek1%5s;F<#6#6666r   c                      t        t               ddit              } | j                  t        j
                  k(  sJ | j                  t        j                  k(  sJ y )NpausedT)	r
   r   r'   r/   r   PAUSEDr(   r   r)   r*   s    r   test_paused_is_not_failedr;       sL    ceh%5s;F##'7'>'>>>><#7#7777r   c                      t        t               i t              } | j                  t        j
                  k(  sJ | j                  t        j                  k(  sJ y )N)	r
   r   r'   r(   r   UNKNOWNobservation_statusr   FRESHr*   s    r   test_readable_unknown_is_freshr@   &   sG    ceR-F<#7#7777$$(9(?(????r   c                      t        t               ddit              } | j                  t        j
                  k(  sJ | j                  t        j                  k(  sJ y )Npermission_deniedT)	r
   r   r'   r(   r   r=   r>   r   UNAVAILABLEr*   s    r   #test_unavailable_is_not_job_failurerD   ,   sM    ce&94%@#FF<#7#7777$$(9(E(EEEEr   )returnN)r   r   r   worker_watcher.enumsr   r   r   worker_watcher.modelsr	   worker_watcher.normalizerr
   r'   r   r,   r2   r7   r;   r@   rD   r   r   r   <module>rI      sP    - - R R / 6tQB#.#8
67
8@Fr   