
    (ph                        S SK JrJr  S SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJrJr  S S	KJr  \R<                  S
 5       r\R@                  RB                  S 5       r"\R@                  RB                  S 5       r#\R@                  RB                  S 5       r$\R@                  RB                  S 5       r%g)    )EventValueN)
get_broker)Conf)monitor)pusher)Queue)	AsyncTaskChainIterasync_chain
async_iter
async_taskcount_groupdelete_cacheddelete_groupfetchfetch_groupresultresult_group)workerc                 D    U R                  [        SS5        [        5       $ )NDJANGO_REDISdefault)setattrr   r   )monkeypatchs    M/var/www/html/venv/lib/python3.13/site-packages/django_q/tests/test_cached.pybrokerr      s    ni8<    c           	      `   U R                  5         U R                  R                  5         Sn[        SSSSU S9n[        SSSSXS9  [        SSSSXS9  [        SSSSXS9  [        SSSSXS9  [        SSSSXS9  [        SSSSXS9  [	        S	[        S
5       Vs/ s H  o3PM     snSS9n[        US
SS9b   e[        US
SS9b   e[        US
SS9b   e[        USS
SS9b   e[        US
SS9b   e[        USS
SS9b   eSnU R                  5       U:X  d   e[        5       n[        5       nUR                  5         [        U5       H  n[        XgU S9  M     U R                  5       S:X  d   eUR                  5       U:X  d   eUR!                  S5        [        5       n[#        Xh[%        SS5      5        UR                  5       U:X  d   eUR!                  S5        ['        U5        UR                  5       S:X  d   e[        USSS9S:X  d   e[        USSS9R                  S:X  d   e[        U5      b   e[)        USS9S:X  d   e[)        USSS9S:X  d   e[        USS9/ SQ:X  d   e[+        [        USSS95      S:X  d   e[+        [        USS95      S:X  d   e[+        [        USSS95      S:X  d   e[-        USS9  [)        USS9b   e[/        U5        [        USS9b   e[        USS9b   e[        U5      b   e[        USS9c   eU R                  R                  5         g s  snf )N
cache_testmath.copysign   T)cachedr   )r%   r   groupzmath.popysign
math.floor
   r%   )waitr%      )countr*   r%      )r   r   STOPfi     )r%   failures)r$   r$   r$   r$   r$   F   )purge_queuecacheclearr   r   ranger   r   r   r   
queue_sizer	   r   setr   qsizeputr   r   r   r   lenr   r   )	r   r&   task_idiiter_id
task_count
task_queue
stop_eventresult_queues	            r   test_cachedrC   "   sx   

LLE!RVLG2d6O2d6O2d6O2d6O2d6O2d6O59'=9a9'=dKG '40888r$/777Bt4<<<QR=EEEu2d3;;;uABt<DDDJ*,,,JJNN:zf5 !###+++NN67L
:U3^4:---VL1$$$'D1R777s40772===>!!!uT*a///uTD9Q>>>d+/CCCC|E$>?1DDD{5./1444{5>?1DDDt$uT*222''$'///&...'?"""'$'333
LL] (>s   L+
c                    U R                  5         U R                  R                  5         [        S5       Vs/ s H  oPM     nn/ SQnSn[	        SUSS9n[	        SUSS9n[	        SUSS9n[	        SSSS9n[        U5      n	U	c   e[        U5      n
U
R
                  U	:X  d   e[        U5      c   e[        U5      c   e[        U5      S	   S
:X  d   e[        SSSS9nUR                  S
S5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  SL d   eUR                  5       S:X  d   eUR                  5       c   e[        UR                  5       5      S:X  d   e[        UR                  5       R
                  5      S:X  d   eUR                  S
S5        UR                  5       b   eUR                  5         [        UR                  5       5      S:X  d   eg s  snf )Nr(   )r#   r$   )r+   r$   )   )r2   r0   )r#   r+   rF      r2   r'   Tsyncr"   )r#   r   r#   rJ   r%   r$   r+   rF   rG   r2   r0   FrH   i)r3   r4   r5   r6   r   r   r   r   appendstartedlengthrunr;   )r   r=   itit2it3tt2t3t4result_ttask_ts              r   	test_iterrY   `   s   

LL2Y	Y!YB	
-C
C<$/A	OSt	4B	L#D	1B	L$T	2BayH1XF==H$$$":!!!":!!!":a=A_45AHHQOHHQOHHQOHHQN9988:??557qxxz?aqwwy A%%%HHQO88:EEGqxxz?a9 
 s   G>c                 
   U R                  5         U R                  R                  5         [        SS9nUR	                  SS5        UR	                  SSS5        UR	                  SS5        UR                  5       S:X  d   eUR                  5       b   eUR                  5         UR                  S	S
9nUR                  5       UR                  5       :X  d   e[        U5      UR                  5       :X  d   eUR                  5       n[        U5      UR                  5       :X  d   eSUl        UR	                  SS5        UR                  5       S:X  d   eUR                  5         UR                  S	S
9nUR                  5       UR                  5       :X  d   e[        U5      UR                  5       :X  d   eUR                  5       n[        U5      UR                  5       :X  d   e[        SS/SSS9n[        USS9SS/:X  d   eg )NTrI   r'   r#   r"   r$   r+   rF   i  )r*   rH   zdjango_q.tests.tasks.hellorK   r)   hello)r3   r4   r5   r   rL   rN   currentrO   r   r;   r   r%   r   r   )r   
task_chainrrS   rids        r   
test_chainr`      s   

LLD!JlA&oq"-lA&!###'''NNt$A:#4#4#6666q6Z&&((((Aq6Z&&((((JlA&!###NNt$A:#4#4#6666q6Z&&((((Aq6Z&&((((
	%'CDC
 D)gw-????r   c           	      .   U R                  5         U R                  R                  5         [        S5      nUR                  S:X  d   eSUl        UR                  SL d   eSUl        UR                  (       d   eSUl        UR                  (       d   eXl	        UR                  U :X  d   eUR                  5         UR                  5       S:X  d   eUR                  5       R                  S:X  d   e[        SSSSSU S9nUR                  5         UR                  5       S:X  d   e[        SSSSSU S.S9nUR                  (       a   eSUl        UR                  S	   S
   SL d   eUR                  5         UR                  5       S:X  d   eSUl        UR                  S:X  d   eSUl        UR                  (       a   eSUl        UR                   S:X  d   eUR                  SL d   eUR                  5         UR#                  5       S/:X  d   eUR%                  5       UR                  5       /:X  d   eUR'                  [(        SS5        UR'                  [(        SS5        [        SS5      nUR                  5         UR                  5       S:X  d   eg )Nr"   rE   FTr$   r#   )r%   rJ   r   )	q_optionsrb   rJ   async_class_testzdjq.tests.tasks.helloSYNCCACHEDr'   g      ?)r3   r4   r5   r
   funcargsrM   r%   rJ   r   rO   r   r   kwargsr&   savehookr   r   r   r   )r   r   as      r   test_asynctask_classrl      sA   

LL/"A66_$$$AF99AH88O8AF66M6H88vEEG88:779r!!!/1bDPAEEG88:	
!5FC		A vv:AF88K (D000EEG88: AG77((((AFvv:$AF66,,,,99EEG>>t###==?qwwyk)))fd+h-,$AEEG88:??r   )&multiprocessingr   r   pytestdjango_q.brokersr   django_q.confr   django_q.monitorr   django_q.pusherr   django_q.queuesr	   django_q.tasksr
   r   r   r   r   r   r   r   r   r   r   r   r   django_q.workerr   fixturer   mark	django_dbrC   rY   r`   rl    r   r   <module>rz      s    (  '  $ " !    #  
 : :z    D @ @B / /r   