U
    ÝÁ]E  ã                   @   sB   d Z ddlZddlZddlZG dd„ dejƒZedkr>e ¡  dS )zTests for certbot.notify.é    Nc                   @   sZ   e Zd ZdZe d¡dd„ ƒZe d¡e d¡dd„ ƒƒZe d¡e d¡dd	„ ƒƒZd
S )ÚNotifyTestszTests for the notifier.zcertbot.notify.smtplib.LMTPc                 C   sP   ddl m} t ¡ }||_|  |dddƒ¡ |  |jjd¡ |  |j	jd¡ d S )Nr   ©ÚnotifyÚGooseúauntrhody@example.comúThe old grey goose is dead.é   )
Úcertbot.notifyr   ÚmockÚ	MagicMockÚreturn_valueÚ
assertTrueÚassertEqualZconnectÚ
call_countÚsendmail)ÚselfÚ	mock_lmtpr   Úlmtp_obj© r   ú;/usr/lib/python3/dist-packages/certbot/tests/notify_test.pyÚtest_smtp_success   s    
ÿzNotifyTests.test_smtp_successzcertbot.notify.subprocess.Popenc                 C   sl   ddl m} t ¡ }||_t d¡|j_t ¡ }||_|  	|dddƒ¡ |  
|jjd¡ |  
|jjd¡ d S )Nr   r   é   r   r   r   r   )r	   r   r
   r   r   ÚsocketÚerrorr   Úside_effectr   r   r   Úcommunicate©r   Z
mock_popenr   r   r   Úprocr   r   r   Útest_smtp_failure   s    
ÿzNotifyTests.test_smtp_failurec                 C   sx   ddl m} t ¡ }||_t d¡|j_t ¡ }||_t	dƒ|j
_|  |dddƒ¡ |  |jjd¡ |  |j
jd¡ d S )	Nr   r   r   z.What we have here is a failure to communicate.r   r   r   r   )r	   r   r
   r   r   r   r   r   r   ÚOSErrorr   ZassertFalser   r   r   r   r   r   Útest_everything_fails#   s    
ÿz!NotifyTests.test_everything_failsN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   Zpatchr   r   r    r   r   r   r   r      s   
	r   Ú__main__)r$   r   Zunittestr
   ZTestCaser   r!   Úmainr   r   r   r   Ú<module>   s   +