
    9aju                    d    d dl mZ d dlZd dlmc 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 )    )annotationsN)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        U/home/agent/.hermes/repos/FinanceManager/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    }|slt	          j        d
|fd||f          t	          j        |          t	          j        |          dz  }	dd|	iz  }
t          t	          j        |
                    d x}x}}|d         }|j	        }d} ||          }|ssdt	          j        |          t	          j        |          t	          j        |          t	          j        |          dz  }t          t	          j        |                    d x}x}x}}sedddt          j                    v st	          j                  rt	          j                  ndiz  }t          t	          j        |                    d}d         d         d         d         }||v }|slt	          j        d|fd||f          t	          j        |          t	          j        |          dz  }	dd|	iz  }
t          t	          j        |
                    d x}x}}|                                 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==z%(py1)s == %(py4)spy1py4assert %(py6)spy6messagezBackend-RestartzLassert %(py7)s
{%(py7)s = %(py3)s
{%(py3)s = %(py1)s.startswith
}(%(py5)s)
})r4   py3py5py7zassert %(py0)spy0r"   zsleep 1r      )in)z%(py1)s in %(py4)s)r   r   r   r   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanation
startswith@py_builtinslocals_should_repr_global_nameassert_not_called)r   r
   r   r(   run_mockresult@py_assert0@py_assert3@py_assert2@py_format5@py_format7@py_assert4@py_assert6@py_format8@py_format1r"   s                  @r   <test_restart_backend_is_detached_so_http_response_can_returnrT      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:''(9::::::::::::'::::(9::::::::::::::::::::::::::::;;/Aq)!,Q//9///////////9//////9////////////////////////////////     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    }|slt	          j        d	|fd
||f          t	          j        |          t	          j        |          dz  }dd|iz  }	t          t	          j        |	                    d x}x}}|d         }d}||u }|slt	          j        d|fd||f          t	          j        |          t	          j        |          dz  }dd|iz  }	t          t	          j        |	                    d x}x}}d}||v}|st	          j        d|fd||f          t	          j        |          dt          j
                    v st	          j        |          rt	          j        |          nddz  }
dd|
iz  }t          t	          j        |                    d x}}d}||z  }d}||z  }|j        }|j        } |            }|sddt          j
                    v st	          j        |          rt	          j        |          ndt	          j        |          t	          j        |          t	          j        |          t	          j        |          t	          j        |          dz  }t          t	          j        |                    d x}x}x}x}x}x}}|dz  dz                      d          }d}||v}|st	          j        d|fd||f          t	          j        |          d t          j
                    v st	          j        |          rt	          j        |          nd dz  }
dd|
iz  }t          t	          j        |                    d x}}d!}||v}|st	          j        d|fd||f          t	          j        |          d t          j
                    v st	          j        |          rt	          j        |          nd dz  }
dd|
iz  }t          t	          j        |                    d x}}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 )Ni2	 )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(   rW   .   s#        	 	 	 	 	r   r(   r)   	dashboardr+   r.   r/   r0   r2   r3   r6   r7   worker_startedT)is)z%(py1)s is %(py4)s
worker_pid)not in)z%(py1)s not in %(py3)srJ   )r4   r9   zassert %(py5)sr:   logszrestart_dashboard.logzyassert %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = %(py8)s
{%(py8)s = ((%(py0)s / %(py2)s) / %(py5)s).parent
}.exists
}()
})r<   py2r:   py8py10py12zops_actions.jsonlr   r   ops_log
worker_log)r   r   r   r   r?   r@   rA   rB   rC   rE   rF   rG   parentexists	read_text)r   r
   r   r(   rJ   rK   rL   rM   rN   rO   @py_format4@py_format6@py_assert1rP   rQ   @py_assert7@py_assert9@py_assert11@py_format13rd   s                       r   0test_restart_dashboard_writes_restart_worker_logrp   )   s   hD"GMMOOO        
Dj	Q	Q \ \)+7VZ[[[\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*{*{**********{*********{***************************"#+t+#t++++++++++#t+++++#++++t+++++++++++++++++++++++++++%<v%%%%%%%%%%<v%%%%%<%%%%%%%%%%%v%%%%%v%%%%%%%%%%%%%%%%%%%%%%%%%%%GGfG6G66G6>G>EGEEGGGGGGGGGGGGGGGGGGGGGGGGGGGGfGGGG6GGGG>GGGGEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"55@@'@RRG&<w&&&&&&&&&&<w&&&&&<&&&&&&&&&&&w&&&&&w&&&&&&&&&&&&&&&&&&&&&&&&&&&&<w&&&&&&&&&&<w&&&&&<&&&&&&&&&&&w&&&&&w&&&&&&&&&&&&&&&&&&&&&&&&&&&&&s   A%%A),A))r   r   r   r   )
__future__r   builtinsrE   _pytest.assertion.rewrite	assertionrewriter?   pathlibr   unittest.mockr   "jarvis_finance.services.system_opsr   r   rT   rp   rY   r   r   <module>ry      s    " " " " " "                           G G G G G G   ! ! !*' ' ' ' 'r   