
    ,hl                     R    d dl mZ d dlmZmZmZ ddlmZ ddlm	Z	  G d de	      Z
y	)
    )unicode_literals)Mockpatchsentinel   )
IMAPClient   )IMAPClientTestc                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )TestStarttlsc                 ~   t         t        |           t        d      }|j	                         | _        | j                  |j                         t        j                  | j                  j                  _        t               | _        t        j                  | j                  j                   _        | j                  | j
                  j$                  _        t        j&                  | j                  _        d| j                  _        d| j                  _        ddgf| j                  j                  j,                  _        y )Nzimapclient.imapclient.tlsFOK   start TLS negotiation)superr   setUpr   starttls
addCleanupstopr   old_sockclient_imapsockr   new_sockfilemakefilereturn_valuewrap_sockethostssl_starttls_done_simple_command)selfpatcher	__class__s     _/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/imapclient/test/test_starttls.pyr   zTestStarttls.setUp   s    lD')34==?%!)!2!2.6mm+,0MM)#==%*"9=@X?Y9Y))6    c                    | j                   j                  t        j                        }| j                  j
                  j                  t        j                  t        j                  t        j                         | j                  j                  j                          | j                  | j                   j                  j                  t        j                         | j                  |d       y )Nr   )r   starttlsr   ssl_contextr   r   assert_called_once_withr   r   r   r   assertEqualr   r   )r#   resps     r&   
test_workszTestStarttls.test_works!   s    {{##H$8$8944  MM	

 	668**//?78r'   c                 X   ddgf| j                   j                  j                  _        | j	                  t
        j                        5 }| j                   j                  t        j                         d d d        | j                  t        j                        d       y # 1 sw Y   /xY w)NNOs   sorryzstarttls failed: sorry)r   r   r"   r   assertRaisesr   Errorr)   r   r*   r,   str	exceptionr#   raiseds     r&   test_command_failszTestStarttls.test_command_fails-   s    9=z9I))6z//0 	7FKK  !5!56	7V--.0HI	7 	7s   *B  B)c                 v    | j                   j                  t        j                         | j	                          y )N)r   r)   r   r*   assert_tls_already_establishedr#   s    r&   test_fails_if_called_twicez'TestStarttls.test_fails_if_called_twice4   s&    X112++-r'   c                 F    d| j                   _        | j                          y )NT)r   r    r9   r:   s    r&   test_fails_if_ssl_truez#TestStarttls.test_fails_if_ssl_true8   s    ++-r'   c                    | j                  t        j                        5 }| j                  j	                  t
        j                         d d d        | j                  t        j                        d       y # 1 sw Y   /xY w)NzTLS session already established)
r1   r   
AbortErrorr   r)   r   r*   r,   r3   r4   r5   s     r&   r9   z+TestStarttls.assert_tls_already_established<   sa    z445 	7KK  !5!56	7V--.0QR	7 	7s   *A88B)
__name__
__module____qualname__r   r.   r7   r;   r=   r9   __classcell__)r%   s   @r&   r   r      s$    Z$
9J..Sr'   r   N)
__future__r   mockr   r   r   
imapclientr   imapclient_testr
   r    r'   r&   <module>rI      s$   
 ( & & # +2S> 2Sr'   