
    0hhr                     @   S SK r S SKJr  S SKJr  S SKJr  S SKrS SKrS SKr\R                  " S5      r
\R                  " S5        \R                  " SS5      rS	 r " S
 S\ R                  5      r " S S\ R                  5      r\S:X  a  \ R&                  " 5         gg)    N)support)import_helper)socket_helpersslnetworkCPYTHON_TEST_SMTP_SERVERzsmtp.gmail.comc                     [         R                  5       n[        R                  " X45       n UR	                  X0S9nUR                  5          S S S 5        g! [         a     S S S 5        gf = f! , (       d  f       g = f)N)server_hostnameTF)r   create_default_contextsocketcreate_connectionwrap_socketclose	Exception)hostportcontextsocks       :/opt/python-3.13.8/usr/lib/python3.13/test/test_smtpnet.pycheck_ssl_verifiyr      su    ((*G		!	!4,	/4	&&t&BD JJL 
0	/  		 
0	/	 
0	/s-   A/AA/
A,!A/+A,,A//
A=c                   "    \ rS rSr\rSrS rSrg)SmtpTest   iK  c                    [         R                  " [        S5        [        R	                  [        R
                  5      nSUl        [        R                  Ul        [        R                  " U R                  5         [        R                  " U R                  U R                  5      n UR                  US9  UR'                  5         UR)                  5         S S S 5        g ! [        R                   aA  nUR                   S   S:X  a(  ["        R$                  " UR                   S   5         S nANxe S nAff = f! , (       d  f       g = f)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_starttlsSmtpTest.test_connect_starttls   s    gz2..!8!89!&!mm--doo>\\$//4??CF0 KKMKKM ?> (( 66!9 MMMM!&&),,		 ?>s<   ;,D8(C 7 D8 D546D0*D8/D00D55D88
E N)	__name__
__module____qualname____firstlineno__SMTP_TEST_SERVERr%   r'   r2   __static_attributes__r4       r   r   r      s    !JJr;   r   c                   ^    \ rS rSr\rSrS rS r\	R                  " S5      S 5       rS rSrg	)
SmtpSSLTest1   i  c                 D   [         R                  " [        S5        [        R                  " U R
                  5         [        R                  " U R
                  U R                  5      nUR                  5         UR                  5         S S S 5        g ! , (       d  f       g = fNr   )
r   r   r   r   r$   r%   r   r'   r-   r.   r/   r0   s     r   test_connectSmtpSSLTest.test_connect5   s\    gz2--doo>%%dootGFKKMKKM ?>>s   AB
Bc                 .   [         R                  " [        S5        [        R                  " U R
                  5         [        R                  " U R
                  5      nUR                  5         UR                  5         S S S 5        g ! , (       d  f       g = fr@   )	r   r   r   r   r$   r%   r   r-   r.   rA   s     r   test_connect_default_port%SmtpSSLTest.test_connect_default_port<   sV    gz2--doo>%%doo6FKKMKKM ?>>s   AB
Bwalltimec                    [         R                  [         R                  5      nSUl        [         R                  Ul        [        R                  " [        S5        [        R                  " U R                  5         [        R                  " U R                  U R                  US9nUR                  5         UR                  5         S S S 5        g ! , (       d  f       g = f)NFr   r   )r   r   r    r!   r"   r#   r   r   r   r   r$   r%   r   r'   r-   r.   )r/   r   r0   s      r   test_connect_using_sslcontext)SmtpSSLTest.test_connect_using_sslcontextC   s    ..!8!89!&!mmgz2--doo>%%dootPWXFKKMKKM ?>>s   ;AC
Cc                 N   [         R                  " U R                  5         [        U R                  U R                  5      nU(       d  U R                  S5        S S S 5        [        R                  " [        S5        [        R                  5       n[         R                  " U R                  5         [        R                  " U R                  U R                  US9nUR                  5         UR                  5         S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz!SSL certificate can't be verifiedr   r   )r   r$   r%   r   r'   skipTestr   r   r   r   r   r   r-   r.   )r/   
can_verifyr   r0   s       r   &test_connect_using_sslcontext_verified2SmtpSSLTest.test_connect_using_sslcontext_verifiedN   s    --doo>*4??DOOLJAB ?
 	gz2,,.--doo>%%dootPWXFKKMKKM ?> ?> ?>s   9D1AD
D
D$r4   N)r5   r6   r7   r8   r9   r%   r'   rB   rE   r   requires_resourcerI   rN   r:   r4   r;   r   r=   r=   1   s:    !JJ z* +r;   r=   __main__)r+   testr   test.supportr   r   osr   r   import_moduler   requiresgetenvr9   r   TestCaser   r=   r5   mainr4   r;   r   <module>rZ      s      & & 	  !!%(    9979IJ 	x   ,((## (V zMMO r;   