Ë
    ˜V.jV  ã                   ó¬   — d Z ddlZddlmZmZ ddlmZmZmZ ddlm	Z	 ddl
mZ ddlmZ 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd	„Zd
efd„Z G d„ de	«      Zd„ Zy)zUseful mocks for unit testing.é    N)ÚdatetimeÚ	timedelta)ÚAnyÚMappingÚSequence)ÚMock)ÚCelery)Ú	Signaturec	                 ó
  — |si n|}ddl m}
 ddlm} |xs  |«       }t	        d|› �¬«      }|| |dœ|_        |||dœ}|j
                  j                  |	«        |
|||fd¬	«      \  |_        |_        |_	        |||f|_
        |S )
z)Create task message in protocol 2 format.r   ©Údumps©ÚuuidúTaskMessage-©Úname)ÚidÚtaskÚshadow)Ú	callbacksÚerrbacksÚchainÚjson)Ú
serializer)Úkombu.serializationr   Úceleryr   r   ÚheadersÚupdateÚcontent_typeÚcontent_encodingÚbodyÚpayload)r   r   ÚargsÚkwargsr   r   r   r   ÚutcÚoptionsr   r   ÚmessageÚembeds                 ú^C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\celery/contrib/testing/mocks.pyÚTaskMessager*      sœ   € ñ ‰R 6€FÝ)åØ	Š‰t‹v€BÜ˜, r dÐ+Ô,€GàØØñ€G„Oð
 $°ÀEÑJ€EØ‡O�O×Ñ˜7Ô#ÙCHØ	ˆv�uÐ¨&ôDÑ@€GÔ˜'Ô2°G´Lð ˜V UÐ+€G„OØ€Nó    c                 ó  — |si n|}ddl m} ddlm}	 |xs  |	«       }t	        d|› �¬«      }
i |
_        | |||||dœ|
_        |
j                  j                  |«        ||
j                  «      \  |
_        |
_	        |
_
        |
S )z)Create task message in protocol 1 format.r   r   r   r   r   )r   r   r#   r$   r   r   )r   r   r   r   r   r   r"   r   r   r    r!   )r   r   r#   r$   r   r   r   r&   r   r   r'   s              r)   ÚTaskMessage1r-   -   s�   € ñ ‰R 6€FÝ)åØ	Š‰t‹v€BÜ˜, r dÐ+Ô,€GØ€G„OàØØØØØñ€G„Oð ‡O�O×Ñ˜7Ô#ÙCHØ�‰óDÑ@€GÔ˜'Ô2°G´Lð €Nr+   Tc                 ó|  — |j                  «        |j                  j                  dd«      }|j                  j                  dd«      }|j                  j                  dd«      }|r| j                  «       t	        |¬«      z   }n|j                  j                  dd«      }|r t        |t        «      r|j                  «       }|j                  j                  dd«      }|r7t        |t        j                  «      r| j                  «       t	        |¬«      z   }|r t        |t        «      r|j                  «       } ||j                  f|j                  |j                  |j                  |r|D �	cg c]  }	t        |	«      ‘Œ c}	nd|r|D �	cg c]  }	t        |	«      ‘Œ c}	nd|||dœ|j                  ¤ŽS c c}	w c c}	w )	zÊCreate task message from :class:`celery.Signature`.

    Example:
        >>> m = task_message_from_sig(app, add.s(2, 2))
        >>> amqp_client.basic_publish(m, exchange='ex', routing_key='rkey')
    ÚlinkNÚ
link_errorÚ	countdown)ÚsecondsÚetaÚexpires)r   r#   r$   r   r   r3   r4   r%   )Úfreezer&   ÚpopÚnowr   Ú
isinstancer   Ú	isoformatÚnumbersÚRealr   r   r#   r$   Údict)
ÚappÚsigr%   r*   r   r   r1   r3   r4   Úss
             r)   Útask_message_from_sigr@   O   s_  € ð ‡J�J„LØ—‘—‘ ¨Ó-€IØ�{‰{�‰˜|¨TÓ2€HØ—‘—‘ ¨TÓ2€IÙØ�g‰g‹iœ)¨IÔ6Ñ6‰à�k‰k�o‰o˜e TÓ*ˆÙ
Œz˜#œxÔ(Ø�m‰m‹oˆØ�k‰k�o‰o˜i¨Ó.€GÙ”:˜g¤w§|¡|Ô4Ø—'‘'“)œi°Ô8Ñ8ˆÙ”:˜g¤xÔ0Ø×#Ñ#Ó%ˆÙØ�‰ð	Ø—V‘V #§(¡(Ø�z‰zÙ2;¡IÓ.¡I˜q”4˜•7 IÒ.ÀÙ08¡8Ó,¡8˜a”$�q•' 8Ò,¸dØØØñ	ð �+‰+ñ	ð 	ùò /ùÚ,s   Å/F4ÆF9c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú_ContextMockz¢Dummy class implementing __enter__ and __exit__.

    The :keyword:`with` statement requires these to be implemented
    in the class, not just the instance.
    c                 ó   — | S ©N© )Úselfs    r)   Ú	__enter__z_ContextMock.__enter__y   s   € Øˆr+   c                  ó   — y rD   rE   )rF   Úexc_infos     r)   Ú__exit__z_ContextMock.__exit__|   s   € Ør+   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rG   rJ   rE   r+   r)   rB   rB   r   s   „ ñòór+   rB   c                  óÈ   — t        | i |¤Ž}|j                  t        «       d«       |j                  t        «       d«       ||j                  _        d|j                  _        |S )z3Mock that mocks :keyword:`with` statement contexts.rG   rJ   N)rB   Úattach_mockrG   Úreturn_valuerJ   )r#   r$   Úobjs      r)   ÚContextMockrS   €   sP   € ä
˜Ð
' Ñ
'€CØ‡O�O”L“N KÔ0Ø‡O�O”L“N JÔ/Ø!$€C‡M�MÔð !%€C‡L�LÔØ€Jr+   )NrE   NNNNNN)NrE   NNNN)rN   r:   r   r   Útypingr   r   r   Úunittest.mockr   r   r	   Úcelery.canvasr
   r*   r-   r@   rB   rS   rE   r+   r)   Ú<module>rW      su   ðÙ $Û ß (ß )Ñ )Ý å Ý #ð
 Ø	ØØØØ
ØØóðH Ø	ØØØØ
óðD )-¸+ó  ôF�4ô ó	r+   