o
    Ž¨ÊhÊ  ã                   @   sè   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d d	lmZ d
Zdd„ Zedded� d&dd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ ZdS )'é    N)Úsettings©Ú	send_mail)Úsend_mass_mail)ÚEmailMultiAlternatives)Úempty)ÚSparkPostEmailBackend)ÚUnsupportedContent)ÚTransmissionsÚAPI_Keyc                  K   s$   t j}tt _t jdd|i| ¤Ž d S )NÚdefault_settings© )r   Ú_wrappedr   Ú	configure)Únew_settingsÚold_settingsr   r   úP/var/www/html/env/lib/python3.10/site-packages/test/django/test_email_backend.pyÚreconfigure_settings   s   r   Tz4sparkpost.django.email_backend.SparkPostEmailBackend)ÚDEBUGÚEMAIL_BACKENDÚSPARKPOST_API_KEYc                 C   s2   | d u ri } ddddgdœ}|  ¡ }| | ¡ |S )Nútest subjectú	test bodyúfrom@example.comúto@example.com)ÚsubjectÚmessageÚ
from_emailÚrecipient_list)ÚcopyÚupdate)Ú	overridesÚdefaultsÚparamsr   r   r   Ú
get_params   s   ü
r$   c                 C   s   t di | ¤ŽS )Nr   r   )r#   r   r   r   Úmailer/   s   r%   c                  C   s   t ƒ } | jjtksJ ‚d S ©N)r   ÚclientÚapi_keyÚAPI_KEY)Úbackendr   r   r   Útest_password_retrieval3   s   r+   c               	   C   sÊ   t j td¡�} tdƒ| _ttddiƒƒ W d   ƒ n1 sw   Y  t j td¡�0} tdƒ| _t 	t¡� ttƒ ƒ W d   ƒ n1 sFw   Y  W d   ƒ d S W d   ƒ d S 1 s^w   Y  d S )NÚsendzi should not be raisedÚfail_silentlyTzi should be raised)
ÚmockÚpatchÚobjectr
   Ú	ExceptionÚside_effectr%   r$   ÚpytestÚraises)Ú	mock_sendr   r   r   Útest_fail_silently8   s   
þ
ÿþ"þr6   c                  C   s¾   t j td¡�} dddœ| _ttddgddœƒƒ}|dksJ ‚W d   ƒ n1 s)w   Y  t j td¡� } d	ddœ| _ttddgddœƒƒ}|d	ksMJ ‚W d   ƒ d S 1 sXw   Y  d S )
Nr,   é   é   ©Útotal_accepted_recipientsÚtotal_rejected_recipientsúto1@example.comúto2@example.comT©r   r-   é
   )r.   r/   r0   r
   Úreturn_valuer%   r$   )r5   Úresultr   r   r   Útest_successful_sendingE   s.   ÿ
þø
ÿÿÿÿ"õrB   c                  C   sÐ   t j td¡�} ttddgddœƒƒ | jdksJ ‚W d   ƒ n1 s$w   Y  t j td¡�.} ddd	dgf}d
dd	dgf}ddd	dgf}t|||fdd� | jdksVJ ‚W d   ƒ d S 1 saw   Y  d S )Nr,   r<   r=   Tr>   r7   zmessage 1 subjectzmessage 1 bodyr   zmessage 2 subjectzmessage 2 bodyzmessage 3 subjectzmessage 3 bodyzto3@example.comF)r-   é   )r.   r/   r0   r
   r%   r$   Ú
call_countr   )r5   Úmessage1Úmessage2Úmessage3r   r   r   Ú$test_send_number_of_emails_correctly^   s(   
þûÿÿÿ"÷rH   c                  C   sb   ddg} t j td¡� tt| ddœƒƒ tjj| dddd	� W d   ƒ d S 1 s*w   Y  d S )
Nr<   r=   r,   Tr>   r   r   r   )Ú
recipientsÚtextr   r   )r.   r/   r0   r
   r%   r$   r,   Úassert_called_with)rI   r   r   r   Útest_paramsr   s   ÿÿý"ùrL   c                  C   sV   dd„ } t j td¡�}| |_tddddgdd	� W d   ƒ d S 1 s$w   Y  d S )
Nc                  [   ó*   | d dksJ ‚| d dksJ ‚dddœS ©NrJ   úhello thereÚhtmlú<p>Hello There</p>r   r9   r   ©Úkwargsr   r   r   Únew_sendƒ   ó
   þz$test_content_types.<locals>.new_sendr,   r   rO   r   r   rQ   ©Úhtml_message)r.   r/   r0   r
   r2   r   )rT   r5   r   r   r   Útest_content_types‚   s   	û"þrX   c                  C   sŠ   ddddœ} t | d� dd„ }dd„ }tj td	¡�!}||_td
dddgdd� ||_tddddgƒ W d   ƒ d S 1 s>w   Y  d S )NFT©Útrack_opensÚtrack_clicksÚtransactional©ÚSPARKPOST_OPTIONSc                  [   rM   rN   r   rR   r   r   r   rT       rU   z6test_send_plain_mail_after_html_mail.<locals>.new_sendc                  [   s&   | d dksJ ‚d| vsJ ‚dddœS )NrJ   úhello there again in text onlyrP   r   r9   r   rR   r   r   r   Únew_send_text_only©   s
   þz@test_send_plain_mail_after_html_mail.<locals>.new_send_text_onlyr,   r   rO   r   r   rQ   rV   ztest subject 2r_   )r   r.   r/   r0   r
   r2   r   )r^   rT   r`   r5   r   r   r   Ú$test_send_plain_mail_after_html_mail—   s0   ý
		ûü"öra   c                  C   sd   t ƒ } t t¡�  t| d d| d | d ƒ}| dd¡ | ¡  W d   ƒ d S 1 s+w   Y  d S )Nr   z
plain textr   r   z<ppp>non-plain content</ppp>z
text/alien)r$   r3   r4   r	   r   Úattach_alternativer,   )r#   Úmailr   r   r   Útest_unsupported_content_typesÄ   s   ü
"ùrd   c                  C   sž   ddddœ} t | d� tj td¡�3 ttƒ ƒ tƒ  ¡ }|d |d< |d |d	< |d= |d= | | ¡ tj	j
d
i |¤Ž W d   ƒ d S 1 sHw   Y  d S )NFTrY   r]   r,   r   rJ   r   rI   r   )r   r.   r/   r0   r
   r%   r$   r   r    r,   rK   )r^   Úexpected_kargsr   r   r   Útest_settings_optionsÑ   s   ý



"ørf   r&   )r3   r.   Údjango.confr   Údjango.core.mailr   r   r   Údjango.utils.functionalr   Úsparkpost.django.email_backendr   Úsparkpost.django.exceptionsr	   Úsparkpost.transmissionsr
   r)   r   r$   r%   r+   r6   rB   rH   rL   rX   ra   rd   rf   r   r   r   r   Ú<module>   s8    ý
-