HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //usr/local/lib/python3.9/site-packages/celery/contrib/testing/__pycache__/manager.cpython-39.pyc
a

X>h�!�@s�dZddlZddlZddlmZddlmZddlmZddl	m
Z
mZmZm
Z
mZmZddlmZddlmZdd	lmZdd
lmZddlmZmZddlmZdd
lmZdZ eedd�ZGdd�de!�Z"Gdd�d�Z#Gdd�de#�Z$dS)zIntegration testing utilities.�N)�defaultdict)�partial)�count)�Any�Callable�Dict�Sequence�TextIO�Tuple)�ContentDisallowed��retry_over_time��states)�TimeoutError)�AsyncResult�	ResultSet)�truncate)�humanize_secondsz4Still waiting for {0}.  Trying again {when}: {exc!r}T)�microsecondsc@seZdZdZdS)�SentinelzSignifies the end of something.N)�__name__�
__module__�__qualname__�__doc__�rr�H/usr/local/lib/python3.9/site-packages/celery/contrib/testing/manager.pyrsrc	@s�eZdZdZd=dd�Zd>dd	�Zd
d�Zd?dd�Zd@dd�Zdd�Z	dAdd�Z
dBdd�ZdCd d!�ZdDd"d#�Z
dEd%d&�ZdFd(d)�ZdGd+d,�ZdHd-d.�Zed/d0��ZdId1d2�Zd3d4�Zd5d6�ZdJd7d8�Zd9d:�Zd;d<�ZdS)K�ManagerMixinz.Mixin that adds :class:`Manager` capabilities.� �@FNcCsF|durtjn||_|dur"tjn||_|j��j|_||_||_dS�N)	�sys�stdout�stderr�app�
connectionZrecoverable_connection_errors�
connerrors�
block_timeout�no_join)�selfr&r'r!r"rrr�
_init_managers
zManagerMixin._init_manager�-cCst|�|��|jd�dS)N)�file)�printr!)r(�s�seprrr�remark(szManagerMixin.remarkcCsdd�|D�S)NcSs g|]}|j|jjvr|j�qSr)�id�backend�_cache)�.0�resrrr�
<listcomp>.�z0ManagerMixin.missing_results.<locals>.<listcomp>r)r(�rrrr�missing_results,szManagerMixin.missing_results�thingr�
皙�����?��?�@c	s@|sin|}����fdd�}
�j||f|||
|||	d�|��S)z�Wait for event to happen.

        The `catch` argument specifies the exception that means the event
        has not happened yet.
        cs>t|�}�r*��tj�t|dd�|d���r:�|||�|S)N�in� )�when�exc)�next�warn�E_STILL_WAITING�formatr)rAZ	intervals�retries�interval��desc�emit_warning�errbackr(rr�on_errorGs�z'ManagerMixin.wait_for.<locals>.on_error)�args�kwargsrK�max_retries�interval_start�
interval_stepr)r(�fun�catchrIrMrNrKrOrPrQ�interval_maxrJ�optionsrLrrHr�wait_for0s
���zManagerMixin.wait_for��{�G�z�?��?c	

KsBz|j||||||||d�WS|y.Yn0td|����dS)z;Make sure something does not happen (at least for a while).)rIrOrPrQrTrJzShould not have happened: N)rV�AssertionError)
r(rRrSrIrOrPrQrTrJrUrrr�ensure_not_for_a_whileYs�z#ManagerMixin.ensure_not_for_a_whilecOst|i|��Srr)r(rMrNrrrr
jszManagerMixin.retry_over_timec	s |jr
dSt|t�s"|j�|g�}g��fdd�}|r>t|�ntd�D]�}g�dd�<z|jf||d�|��WStjt	fy�}zH|�
|�}|�d�t
|�t
��t
|�td�|��|�d�WYd}~qFd}~0|j�y}z|�d|��d�WYd}~qFd}~00qFtd	��dS)
Ncs��|�dSr)�append)�task_id�value�Zreceivedrr�	on_resulttsz$ManagerMixin.join.<locals>.on_resultr)�callback�	propagatez#Still waiting for {}/{}: [{}]: {!r}z, �!zjoin: connection lost: z!Test failed: Missing task results)r'�
isinstancerr#�ranger�get�socket�timeoutrr8r/rE�lenr�joinr%rZ)	r(r7rbrOrNr`�irAZwaiting_forrr_rrjms,

��*zManagerMixin.join�@cCs|jjj|d�S�N�rh)r#�control�inspect)r(rhrrrrp�szManagerMixin.inspectccs&|�|�j|�pi}|��EdHdSr)rpZ
query_task�items)r(�idsrh�tasksrrr�query_tasks�szManagerMixin.query_tasksc	CsHtt�}|j||d�D],\}}|��D]\}\}}||�|�q&q|Srm)r�setrtrq�add)	r(rrrhr�hostnameZreplyr]�state�_rrr�query_task_states�s
zManagerMixin.query_task_states� waiting for tasks to be acceptedcKs|j|j|f||d�|��S�N)rGrI)�assert_task_worker_state�is_accepted�r(rrrGrI�policyrrr�assert_accepted�s���zManagerMixin.assert_accepted� waiting for tasks to be receivedcKs|j|j|f||d�|��Sr|)r}�is_receivedrrrr�assert_received�s���zManagerMixin.assert_received�,waiting for tasks to be started or completedcKs|j|j|f||d�|��Sr|)�assert_task_state_from_result�is_result_task_in_progress)r(Z
async_resultsrGrIr�rrr�,assert_result_tasks_in_progress_or_completed�s���z9ManagerMixin.assert_result_tasks_in_progress_or_completedcKs$|jt|j|||d�tffi|��Srm�rVr�
true_or_raiser)r(rR�resultsrGr�rrrr��s��z*ManagerMixin.assert_task_state_from_resultcs"tjtjf�t�fdd�|D��S)Nc3s|]}|j�vVqdSr)rx)r3�result�Zpossible_statesrr�	<genexpr>�r6z:ManagerMixin.is_result_task_in_progress.<locals>.<genexpr>)rZSTARTED�SUCCESS�all)r�rNrr�rr��sz'ManagerMixin.is_result_task_in_progresscKs$|jt|j|||d�tffi|��Srmr�)r(rRrrrGr�rrrr}�s��z%ManagerMixin.assert_task_worker_statecKs|jgd�|fi|��S)N)�reserved�active�ready��_ids_matches_state�r(rrrNrrrr��s
��zManagerMixin.is_receivedcKs|jddg|fi|��S)Nr�r�r�r�rrrr~�szManagerMixin.is_acceptedcs&|j||d��t��fdd�|D��S)Nrnc3s2|]*�t�fdd��fdd��D�D��VqdS)c3s|]}�|vVqdSrr)r3r-��trrr��r6z<ManagerMixin._ids_matches_state.<locals>.<genexpr>.<genexpr>csg|]}�|�qSrr)r3�krrrr5�r6z=ManagerMixin._ids_matches_state.<locals>.<genexpr>.<listcomp>N)�any)r3��expected_statesrr�rr��s�z2ManagerMixin._ids_matches_state.<locals>.<genexpr>)rzr�)r(r�rrrhrr�rr��s�zManagerMixin._ids_matches_statecOs||i|��}|st��|Sr)r)r(rRrMrNr4rrrr��szManagerMixin.true_or_raisec	Cs�|jj}|j���x}|j|d�}|dkrq,q|��}||_ztdd�|����D��}WntynYq|Yn0|dkr:q|q:Wd�n1s�0YdS)N)r$rcss|]}t|�VqdSr)ri)r3r�rrrr��r6z/ManagerMixin.wait_until_idle.<locals>.<genexpr>)	r#ror$�purgerp�sumr��valuesr)r(ror$rrprrr�wait_until_idle�s
zManagerMixin.wait_until_idle)rFNN)r*)	r9rNNr:r;r<r=F)r9rWr;rXrYF)Fr:)rl)r<)r<)r<r{)r<r�)r<r�)r<)r<)r<)rrrrr)r/r8rVr[r
rjrprtrzr�r�r�r��staticmethodr�r}r�r~r�r�r�rrrrrsX�


�
*�




�
�
	�
�



rc@seZdZdZdd�ZdS)�Managerz(Test helpers for task integration tests.cKs||_|jfi|��dSr)r#r))r(r#rNrrr�__init__�szManager.__init__N)rrrrr�rrrrr��sr�)%rrgr �collectionsr�	functoolsr�	itertoolsr�typingrrrrr	r
Zkombu.exceptionsrZkombu.utils.functionalr
ZceleryrZcelery.exceptionsrZ
celery.resultrrZcelery.utils.textrZcelery.utils.timerZ_humanize_secondsrD�	Exceptionrrr�rrrr�<module>s& P