Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
17e3d698
Kaydet (Commit)
17e3d698
authored
Tem 31, 2010
tarafından
Georg Brandl
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Avoid triggering DeprecationWarnings in test_smtpd and smtpd.
üst
ca9400f0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
30 deletions
+31
-30
smtpd.py
Lib/smtpd.py
+4
-4
test_smtpd.py
Lib/test/test_smtpd.py
+27
-26
No files found.
Lib/smtpd.py
Dosyayı görüntüle @
17e3d698
...
...
@@ -293,10 +293,10 @@ class SMTPChannel(asynchat.async_chat):
else
:
data
.
append
(
text
)
self
.
received_data
=
NEWLINE
.
join
(
data
)
status
=
self
.
_
_server
.
process_message
(
self
.
peer
,
self
.
mailfrom
,
self
.
rcpttos
,
self
.
received_data
)
status
=
self
.
smtp
_server
.
process_message
(
self
.
peer
,
self
.
mailfrom
,
self
.
rcpttos
,
self
.
received_data
)
self
.
rcpttos
=
[]
self
.
mailfrom
=
None
self
.
smtp_state
=
self
.
COMMAND
...
...
Lib/test/test_smtpd.py
Dosyayı görüntüle @
17e3d698
...
...
@@ -79,101 +79,102 @@ class SMTPDChannelTest(TestCase):
def
test_missing_data
(
self
):
self
.
write_line
(
b
''
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'500 Error: bad syntax
\r\n
'
)
def
test_EHLO_not_implemented
(
self
):
self
.
write_line
(
b
'EHLO test.example'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'502 Error: command "EHLO" not implemented
\r\n
'
)
def
test_HELO
(
self
):
name
=
socket
.
getfqdn
()
self
.
write_line
(
b
'HELO test.example'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
'250 {}
\r\n
'
.
format
(
name
)
.
encode
(
'ascii'
))
def
test_HELO_bad_syntax
(
self
):
self
.
write_line
(
b
'HELO'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'501 Syntax: HELO hostname
\r\n
'
)
def
test_HELO_duplicate
(
self
):
self
.
write_line
(
b
'HELO test.example'
)
self
.
write_line
(
b
'HELO test.example'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'503 Duplicate HELO/EHLO
\r\n
'
)
def
test_NOOP
(
self
):
self
.
write_line
(
b
'NOOP'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'250 Ok
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'250 Ok
\r\n
'
)
def
test_NOOP_bad_syntax
(
self
):
self
.
write_line
(
b
'NOOP hi'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'501 Syntax: NOOP
\r\n
'
)
def
test_QUIT
(
self
):
self
.
write_line
(
b
'QUIT'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'221 Bye
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'221 Bye
\r\n
'
)
def
test_QUIT_arg_ignored
(
self
):
self
.
write_line
(
b
'QUIT bye bye'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'221 Bye
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'221 Bye
\r\n
'
)
def
test_bad_state
(
self
):
self
.
channel
.
_SMTPChannel_
_state
=
'BAD STATE'
self
.
channel
.
smtp
_state
=
'BAD STATE'
self
.
write_line
(
b
'HELO'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'451 Internal confusion
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'451 Internal confusion
\r\n
'
)
def
test_need_MAIL
(
self
):
self
.
write_line
(
b
'RCPT to:spam@example'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'503 Error: need MAIL command
\r\n
'
)
def
test_MAIL_syntax
(
self
):
self
.
write_line
(
b
'MAIL from eggs@example'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'501 Syntax: MAIL FROM:<address>
\r\n
'
)
def
test_MAIL_missing_from
(
self
):
self
.
write_line
(
b
'MAIL from:'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'501 Syntax: MAIL FROM:<address>
\r\n
'
)
def
test_MAIL_chevrons
(
self
):
self
.
write_line
(
b
'MAIL from:<eggs@example>'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'250 Ok
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'250 Ok
\r\n
'
)
def
test_nested_MAIL
(
self
):
self
.
write_line
(
b
'MAIL from:eggs@example'
)
self
.
write_line
(
b
'MAIL from:spam@example'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'503 Error: nested MAIL command
\r\n
'
)
def
test_need_RCPT
(
self
):
self
.
write_line
(
b
'MAIL From:eggs@example'
)
self
.
write_line
(
b
'DATA'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'503 Error: need RCPT command
\r\n
'
)
def
test_RCPT_syntax
(
self
):
self
.
write_line
(
b
'MAIL From:eggs@example'
)
self
.
write_line
(
b
'RCPT to eggs@example'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'501 Syntax: RCPT TO: <address>
\r\n
'
)
def
test_data_dialog
(
self
):
self
.
write_line
(
b
'MAIL From:eggs@example'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'250 Ok
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'250 Ok
\r\n
'
)
self
.
write_line
(
b
'RCPT To:spam@example'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'250 Ok
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'250 Ok
\r\n
'
)
self
.
write_line
(
b
'DATA'
)
self
.
assertEqual
(
self
.
channel
.
last
,
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'354 End data with <CR><LF>.<CR><LF>
\r\n
'
)
self
.
write_line
(
b
'data
\r\n
more
\r\n
.'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'250 Ok
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'250 Ok
\r\n
'
)
self
.
assertEqual
(
self
.
server
.
messages
[
-
1
],
(
'peer'
,
'eggs@example'
,
[
'spam@example'
],
'data
\n
more'
))
...
...
@@ -181,7 +182,7 @@ class SMTPDChannelTest(TestCase):
self
.
write_line
(
b
'MAIL From:eggs@example'
)
self
.
write_line
(
b
'RCPT To:spam@example'
)
self
.
write_line
(
b
'DATA spam'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'501 Syntax: DATA
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'501 Syntax: DATA
\r\n
'
)
def
test_multiple_RCPT
(
self
):
self
.
write_line
(
b
'MAIL From:eggs@example'
)
...
...
@@ -197,13 +198,13 @@ class SMTPDChannelTest(TestCase):
self
.
write_line
(
b
'RCPT To:spam@example'
)
self
.
write_line
(
b
'DATA'
)
self
.
write_line
(
b
'return status
\r\n
.'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'250 Okish
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'250 Okish
\r\n
'
)
def
test_RSET
(
self
):
self
.
write_line
(
b
'MAIL From:eggs@example'
)
self
.
write_line
(
b
'RCPT To:spam@example'
)
self
.
write_line
(
b
'RSET'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'250 Ok
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'250 Ok
\r\n
'
)
self
.
write_line
(
b
'MAIL From:foo@example'
)
self
.
write_line
(
b
'RCPT To:eggs@example'
)
self
.
write_line
(
b
'DATA'
)
...
...
@@ -213,7 +214,7 @@ class SMTPDChannelTest(TestCase):
def
test_RSET_syntax
(
self
):
self
.
write_line
(
b
'RSET hi'
)
self
.
assertEqual
(
self
.
channel
.
last
,
b
'501 Syntax: RSET
\r\n
'
)
self
.
assertEqual
(
self
.
channel
.
socket
.
last
,
b
'501 Syntax: RSET
\r\n
'
)
def
test_main
():
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment