
    <e                        d dl Z d dlmZ d dlmZ d dlmZ d dlZd dlZ ej        d          Z	 ej
        d           d Z G d d	e j                  Z G d
 de j                  Zedk    r e j                     dS dS )    N)support)import_helper)socket_helpersslnetworkc                 (   t                                           }t          j        | |f          5 }	 |                    ||           }|                                 	 d d d            dS # t          $ r Y d d d            dS w xY w# 1 swxY w Y   d S )N)server_hostnameTF)r   create_default_contextsocketcreate_connectionwrap_socketclose	Exception)hostportcontextsocks       (/usr/lib/python3.11/test/test_smtpnet.pycheck_ssl_verifiyr      s    ((**G		!4,	/	/ 4	&&tT&BBD JJLLL         	 	 		       	         s4   BA+	B+
B5BBBBBc                       e Zd ZdZdZd ZdS )SmtpTestsmtp.gmail.comiK  c                 p   t          j        t          d           t                              t          j                  }d|_        t          j        |_        t          j
        | j                  5  t          j        | j        | j                  }	 |                    |           nN# t          j        $ r<}|j        d         dk    r t#          j        |j        d                    n Y d }~nd }~ww xY w|                                 |                                 d d d            d S # 1 swxY w Y   d S )NSMTP_SSLFr   r   z+STARTTLS extension not supported by server.)r   get_attributesmtplibr   
SSLContextPROTOCOL_TLS_CLIENTcheck_hostname	CERT_NONEverify_moder   transient_internet
testServerSMTP
remotePortstarttlsSMTPExceptionargsunittestskipehloquit)selfr   serveres       r   test_connect_starttlszSmtpTest.test_connect_starttls   s`   gz222..!899!&!m-do>> 
	 
	\$/4?CCF0000(   6!9 MMMM!&),,,, -,,,,
 KKMMMKKMMM
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	s<   0 D+B('D+(C372C.)D+.C33+D++D/2D/N)__name__
__module____qualname__r$   r&   r1        r   r   r      s-        !JJ    r6   r   c                   .    e Zd ZdZdZd Zd Zd Zd ZdS )SmtpSSLTestr   i  c                 ,   t          j        t          d           t          j        | j                  5  t          j        | j        | j                  }|                                 |	                                 d d d            d S # 1 swxY w Y   d S Nr   )
r   r   r   r   r#   r$   r   r&   r,   r-   r.   r/   s     r   test_connectzSmtpSSLTest.test_connect2   s    gz222-do>> 	 	%dotGGFKKMMMKKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AB		BBc                     t          j        t          d           t          j        | j                  5  t          j        | j                  }|                                 |                                 d d d            d S # 1 swxY w Y   d S r:   )	r   r   r   r   r#   r$   r   r,   r-   r;   s     r   test_connect_default_portz%SmtpSSLTest.test_connect_default_port9   s    gz222-do>> 	 	%do66FKKMMMKKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ABB
Bc                    t                               t           j                  }d|_        t           j        |_        t          j        t          d           t          j
        | j                  5  t          j        | j        | j        |          }|                                 |                                 d d d            d S # 1 swxY w Y   d S )NFr   r   )r   r   r   r    r!   r"   r   r   r   r   r#   r$   r   r&   r,   r-   )r.   r   r/   s      r   test_connect_using_sslcontextz)SmtpSSLTest.test_connect_using_sslcontext@   s    ..!899!&!mgz222-do>> 	 	%dotPWXXXFKKMMMKKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   0A
CCCc                 &   t          j        | j                  5  t          | j        | j                  }|s|                     d           d d d            n# 1 swxY w Y   t          j        t          d           t          
                                }t          j        | j                  5  t          j        | j        | j        |          }|                                 |                                 d d d            d S # 1 swxY w Y   d S )Nz!SSL certificate can't be verifiedr   r   )r   r#   r$   r   r&   skipTestr   r   r   r   r
   r   r,   r-   )r.   
can_verifyr   r/   s       r   &test_connect_using_sslcontext_verifiedz2SmtpSSLTest.test_connect_using_sslcontext_verifiedJ   s}   -do>> 	C 	C*4?DOLLJ CABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C
 	gz222,,..-do>> 	 	%dotPWXXXFKKMMMKKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   2AAA/A
DD
D
N)	r2   r3   r4   r$   r&   r<   r>   r@   rD   r5   r6   r   r8   r8   .   sZ        !JJ          r6   r8   __main__)r*   testr   test.supportr   r   r   r   import_moduler   requiresr   TestCaser   r8   r2   mainr5   r6   r   <module>rL      s          & & & & & & & & & & & &  !m!%((     	 	 	    x    ,' ' ' ' '(# ' ' 'T zHMOOOOO r6   