
    daf                        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                           yy)    N)support)import_helper)socket_helpersslnetworkc                     t         j                         }t        j                  | |f      5 }	 |j	                  ||       }|j                          	 d d d        y# t        $ r Y d d d        yw xY w# 1 sw Y   y xY w)N)server_hostnameTF)r   create_default_contextsocketcreate_connectionwrap_socketclose	Exception)hostportcontextsocks       ,/root/Python-3.12.4/Lib/test/test_smtpnet.pycheck_ssl_verifiyr      s    ((*G		!	!4,	/ 4	&&tT&BD JJL   		 	 s.   A2AA2	A/$A2.A//A22A;c                       e Zd ZdZdZd Zy)SmtpTestsmtp.gmail.comiK  c                    t        j                  t        d       t        j	                  t        j
                        }d|_        t        j                  |_        t        j                  | j                        5  t        j                  | j                  | j                        }	 |j                  |       |j'                          |j)                          d d d        y # t        j                  $ r@}|j                   d   dk(  r#t#        j$                  |j                   d          n Y d }~wd }~ww xY w# 1 sw Y   y xY w)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..!8!89!&!mm--doo> 
	\\$//4??CF0 KKMKKM
	 
	 (( 66!9 MMMM!&&), -	
	 
	s6   9+D6%C 7 D6 D336D.)D6.D33D66D?N)__name__
__module____qualname__r$   r&   r1        r   r   r      s    !JJr6   r   c                   V    e Zd ZdZdZd Zd Z ej                  d      d        Z	d Z
y)	SmtpSSLTestr   i  c                 4   t        j                  t        d       t        j                  | j
                        5  t        j                  | j
                  | j                        }|j                          |j                          d d d        y # 1 sw Y   y xY wNr   )
r   r   r   r   r#   r$   r   r&   r,   r-   r.   r/   s     r   test_connectzSmtpSSLTest.test_connect2   se    gz2--doo> 	%%dootGFKKMKKM	 	 	s   ABBc                    t        j                  t        d       t        j                  | j
                        5  t        j                  | j
                        }|j                          |j                          d d d        y # 1 sw Y   y xY w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--doo> 	%%doo6FKKMKKM	 	 	s   A BBwalltimec                    t         j                  t         j                        }d|_        t         j                  |_        t        j                  t        d       t        j                  | j                        5  t        j                  | j                  | j                  |      }|j                          |j                          d d d        y # 1 sw Y   y xY w)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!89!&!mmgz2--doo> 	%%dootPWXFKKMKKM	 	 	s   9ACCc                 .   t        j                  | j                        5  t        | j                  | j                        }|s| j                  d       d d d        t        j                  t        d       t        j                         }t        j                  | j                        5  t        j                  | j                  | j                  |      }|j                          |j                          d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)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_verifiedK   s    --doo> 	C*4??DOOLJAB	C
 	gz2,,.--doo> 	%%dootPWXFKKMKKM	 		C 	C	 	s   4C?)AD?DDN)r2   r3   r4   r$   r&   r<   r>   r   requires_resourcerA   rE   r5   r6   r   r8   r8   .   s<    !JJ Wz* +r6   r8   __main__)r*   testr   test.supportr   r   r   r   import_moduler   requiresr   TestCaser   r8   r2   mainr5   r6   r   <module>rN      s}      & &  !m!!%(    	x   ,((## (V zHMMO r6   