o
    ÒßÝS›  ã                   @   s  d dl mZ zd dlmZ W n ey   d dlmZ Y nw 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 dlmZ d dlmZ dZG dd„ deƒZG dd„ deƒZedd�G dd„ deƒƒZG dd„ deƒZG dd„ deƒZdS )é    )Úunicode_literals)Ú
skipUnless)ÚVERSION)ÚImproperlyConfigured)ÚTestCase)Úoverride_settings)Ú	text_type)ÚUser)Ú	send_mail)Úmail)ÚEmail)ÚSettingsz,email_log.tests.backends.FailingEmailBackendc                   @   s   e Zd Zdd„ ZdS )ÚEmailModelTestsc                 C   s*   t jjdddddd�}|  t|ƒd¡ d S )Núfrom@example.comúto@example.comúSubject lineúMessage bodyT)Ú
from_emailÚ
recipientsÚsubjectÚbodyÚokzto@example.com: Subject line)r   ÚobjectsÚcreateÚassertEqualr   ©ÚselfÚemail© r   úG/var/www/html/env/lib/python3.10/site-packages/email_log/tests/tests.pyÚtest_unicode   s   ûzEmailModelTests.test_unicodeN)Ú__name__Ú
__module__Ú__qualname__r    r   r   r   r   r      s    r   c                   @   s&   e Zd Zedd�dd„ ƒZdd„ ZdS )ÚSettingsTestsÚ	specified)ÚSPECIFIED_SETTINGc                 C   s    t ƒ }d|j_|  |jd¡ d S )NÚunspecifiedr%   )r   ÚdefaultsÚUNSPECIFIED_SETTINGr   r&   ©r   Úsettingsr   r   r   Útest_settings_fall_through%   s   z(SettingsTests.test_settings_fall_throughc                 C   s    t ƒ }d|j_|  |jd¡ d S )Nr'   )r   r(   r)   r   r*   r   r   r   Útest_settings_defaults+   s   z$SettingsTests.test_settings_defaultsN)r!   r"   r#   r   r,   r-   r   r   r   r   r$   #   s    
r$   zemail_log.backends.EmailBackend)ÚEMAIL_BACKENDc                   @   sZ   e Zd ZddgdddœZddd„Zd	d
„ Zdd„ Zeed�dd„ ƒZ	eed�dd„ ƒZ
dS )ÚEmailBackendTestsr   r   r   r   )r   r   r   r   Tc                 K   s>   |  ¡ D ]\}}|dkr|rd |¡}|  t||ƒ|¡ qd S )Nr   z; )ÚitemsÚjoinr   Úgetattr)r   r   ÚmodelÚkwargsÚkeyÚvaluer   r   r   ÚassertEmailCorrect;   s
   
ýz$EmailBackendTests.assertEmailCorrectc                    s.   t di |¤Ž‰ ‡ fdd„dD ƒ}t|i ˆ ¤ŽS )Nc                    s   g | ]}ˆ   |¡‘qS r   )Úpop)Ú.0Úk©Úkwgsr   r   Ú
<listcomp>C   s    z/EmailBackendTests.send_mail.<locals>.<listcomp>)r   r   r   r   r   )Údictr
   )r   r4   Úargsr   r;   r   r
   A   s
   
ÿzEmailBackendTests.send_mailc                 C   s°   | j d	ddi| j¤Ž}|  |d¡ |  ttjƒd¡ tj ¡ }|  	|j
¡ |  |jd¡ |  tjd jdg¡ |tjd fD ]}|  |jd¡ |  |jd¡ |  |jd¡ q>d S )
NÚfail_silentlyFé   r   r   r   r   r   r   )r
   Ú
plain_argsr   Úlenr   Úoutboxr   r   ÚgetÚ
assertTruer   r   ÚassertSequenceEqualÚtor   r   r   )r   Úsentr   Úmessager   r   r   Útest_send_messagesG   s   
ýz$EmailBackendTests.test_send_messages)ÚEMAIL_LOG_BACKENDc                 C   sJ   | j t| jfddi| j¤Ž tj ¡ }|  |j¡ | j	|fi | j¤Ž d S )Nr@   F)
ÚassertRaisesÚNotImplementedErrorr
   rB   r   r   rE   ÚassertFalser   r7   r   r   r   r   Útest_send_failureT   s   ÿÿ
z#EmailBackendTests.test_send_failurec                 C   sP   | j dddi| j¤Ž}|  |d¡ tj ¡ }|  |j¡ | j|fi | j¤Ž d S )Nr@   Tr   r   )	r
   rB   r   r   r   rE   rO   r   r7   )r   rI   r   r   r   r   Útest_send_failure_silent\   s
   
z*EmailBackendTests.test_send_failure_silentN)T)r!   r"   r#   rB   r7   r
   rK   r   ÚFAILING_BACKENDrP   rQ   r   r   r   r   r/   1   s    ü

r/   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )Ú
AdminTestsc                 C   s4   t dddd�}| d¡ | ¡  | jjddd� d S )NÚuserT)ÚusernameÚis_superuserÚis_staffÚpass)rU   Úpassword)r	   Úset_passwordÚsaveÚclientÚlogin)r   rT   r   r   r   ÚsetUpg   s   
zAdminTests.setUpc                 C   s   | j  d¡}|  |jd¡ d S )Nz/admin/email_log/email/add/é“  )r\   rE   r   Ústatus_code©r   Úpager   r   r   Útest_add_pagem   s   zAdminTests.test_add_pagec                 C   sn   d}t jj|d�}| j d|j ¡}|  d|j¡ |  ||j¡ |  d|j¡ |  d|j¡ |  	|j
d¡ d S )Ns   This
is
a
test)r   z/admin/email_log/email/%s/s!   <div class="form-row field-body">s+   <div class="form-row field-body_formatted">s$   <p>This<br />is<br />a<br />test</p>éÈ   )r   r   r   r\   rE   ÚpkÚassertNotInÚcontentÚassertInr   r`   )r   Úinitialr   rb   r   r   r   Útest_body_is_formattedq   s   ÿz!AdminTests.test_body_is_formattedc                 C   s0   t j ¡ }| j d |j¡¡}|  |jd¡ d S )Nz"/admin/email_log/email/{0}/delete/r_   )	r   r   r   r\   rE   Úformatre   r   r`   )r   r   rb   r   r   r   Útest_delete_page|   s
   
ÿzAdminTests.test_delete_pagec                 C   s4   | j  d¡}tdk r|  |d¡ d S |  |d¡ d S )Nz/admin/©rA   é   r   Ú	Email_Logz	Email log)r\   rE   r   ÚassertContainsra   r   r   r   Útest_app_name‚   s   zAdminTests.test_app_nameN)r!   r"   r#   r^   rc   rj   rl   rq   r   r   r   r   rS   e   s    rS   c                   @   s"   e Zd Zeedk dƒdd„ ƒZdS )ÚSouthSupportTestsrm   z"test only applies to 1.6 and belowc              
   C   sP   zddl m} W n ty } z|}W Y d }~nd }~ww |  d|jd ¡ d S )Nr   )Ú__doc__ÚSOUTH_MIGRATION_MODULES)Úemail_log.migrationsrs   r   rh   r?   )r   rs   ÚeÚ	exceptionr   r   r   Útest_import_migrations_moduleŒ   s   €ÿz/SouthSupportTests.test_import_migrations_moduleN)r!   r"   r#   r   r   rx   r   r   r   r   rr   Š   s    rr   N) Ú
__future__r   Úunittestr   ÚImportErrorÚdjango.utils.unittestÚdjangor   Údjango.core.exceptionsr   Údjango.testr   Údjango.test.utilsr   Údjango.utils.sixr   Údjango.contrib.auth.modelsr	   Údjango.core.mailr
   Údjango.corer   Úemail_log.modelsr   Úemail_log.confr   rR   r   r$   r/   rS   rr   r   r   r   r   Ú<module>   s.    ÿ3%