
    Yaj                    J    d dl mZ d dlmZ d dlmZ d dlmZ ddZd	 Z	d
 Z
dS )    )annotations)Path)patch)restart_system_componenttmp_pathr   returnc                    | dz  }|dz  }|                     d           dD ]3}||z  }|                    dd           |                    d	           4|S )
NreposcriptsT)parents)zrestart_backend.shzrestart_frontend.shzrestart_dashboard.shz#!/usr/bin/env bash
echo ok
utf-8encodingi  )mkdir
write_textchmod)r   r
   r   namepaths        ,tests/unit/test_system_ops_restart_remote.py
_make_repor   	   ss    fDYGMM$MU  ~87KKK

5K    c                   t          |           }| dz  }|                                 g  G fdd          }t          d|          5  t          d          5 }t          d||          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |d         d	k    sJ |d
                             d          sJ sJ dd         d         d         d         v sJ |                                 d S )Nruntimec                      e Zd Z fdZdS )Ptest_restart_backend_is_detached_so_http_response_can_return.<locals>.DummyPopenc                D                         ||f           d| _        d S )Ni90  )appendpid)selfargskwargspopen_callss      r   __init__zYtest_restart_backend_is_detached_so_http_response_can_return.<locals>.DummyPopen.__init__   s&    f~...DHHHr   N__name__
__module____qualname__r#   )r"   s   r   
DummyPopenr      s.        	 	 	 	 	 	 	r   r(   3jarvis_finance.services.system_ops.subprocess.Popenz1jarvis_finance.services.system_ops.subprocess.runbackendruntime_dir	repo_rootstatus	scheduledmessagezBackend-Restartzsleep 1r      )r   r   r   r   
startswithassert_not_called)r   r
   r   r(   run_mockresultr"   s         @r   <test_restart_backend_is_detached_so_http_response_can_returnr6      s   hD"GMMOOOK         
 
Dj	Q	Q Z ZSX  ZM  TN  TN Z  RZ))TXYYYZ Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ({****)''(9:::::;Aq)!,Q/////     s6   BA:.B:A>	>BA>	BBBc                   t          |           }| dz  }|                                  G d d          }t          d|          5  t          d||          }d d d            n# 1 swxY w Y   |d         dk    sJ |d	         d
k    sJ |dz  dz  j                                        sJ d	|dz  dz                      d          v sJ d S )Nr   c                      e Zd Zd ZdS )Dtest_restart_dashboard_writes_restart_worker_log.<locals>.DummyPopenc                0    || _         || _        d| _        d S )N2	 )r    r!   r   )r   r    r!   s      r   r#   zMtest_restart_dashboard_writes_restart_worker_log.<locals>.DummyPopen.__init__/   s    DI DKDHHHr   Nr$    r   r   r(   r9   .   s#        	 	 	 	 	r   r(   r)   	dashboardr+   r.   r/   
worker_pidr;   logszrestart_dashboard.logzops_actions.jsonlr   r   )r   r   r   r   parentexists	read_text)r   r
   r   r(   r5   s        r   0test_restart_dashboard_writes_restart_worker_logrC   )   sd   hD"GMMOOO        
Dj	Q	Q \ \)+7VZ[[[\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ({****,5((((f66>EEGGGGGGf,/BBMMW^M________s   A%%A),A)N)r   r   r   r   )
__future__r   pathlibr   unittest.mockr   "jarvis_finance.services.system_opsr   r   r6   rC   r<   r   r   <module>rH      s    " " " " " "             G G G G G G   ! ! !*` ` ` ` `r   