Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
b8cd3e4e
Commit
b8cd3e4e
authored
May 16, 2015
by
R David Murray
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#21804: Add RFC 6856 (UTF8) support to poplib.
Patch by Milan Oberkirch.
parent
8eb1f077
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
41 additions
and
0 deletions
+41
-0
Doc/library/poplib.rst
Doc/library/poplib.rst
+9
-0
Doc/whatsnew/3.5.rst
Doc/whatsnew/3.5.rst
+7
-0
Lib/poplib.py
Lib/poplib.py
+7
-0
Lib/test/test_poplib.py
Lib/test/test_poplib.py
+16
-0
Misc/NEWS
Misc/NEWS
+2
-0
No files found.
Doc/library/poplib.rst
View file @
b8cd3e4e
...
...
@@ -194,6 +194,15 @@ An :class:`POP3` instance has the following methods:
the unique id for that message in the form ``'response mesgnum uid``, otherwise
result is list ``(response, ['mesgnum uid', ...], octets)``.
.. method:: POP3.utf8()
Try to switch to UTF-8 mode. Returns the server response if sucessful,
raises :class:`error_proto` if not. Specified in :RFC:`6856`.
.. versionadded:: 3.5
.. method:: POP3.stls(context=None)
Start a TLS session on the active connection as specified in :rfc:`2595`.
...
...
Doc/whatsnew/3.5.rst
View file @
b8cd3e4e
...
...
@@ -452,6 +452,13 @@ pickle
classes) now are supported with pickle protocols < 4.
(Contributed by Serhiy Storchaka in :issue:`23611`.)
poplib
------
* A new command :meth:`~poplib.POP3.utf8` enables :rfc:`6856`
(internationalized email) support if the POP server supports it. (Contributed
by Milan OberKirch in :issue:`21804`.)
re
--
...
...
Lib/poplib.py
View file @
b8cd3e4e
...
...
@@ -71,6 +71,7 @@ class POP3:
UIDL [msg] uidl(msg = None)
CAPA capa()
STLS stls()
UTF8 utf8()
Raises one exception: 'error_proto'.
...
...
@@ -348,6 +349,12 @@ class POP3:
return self._longcmd('
UIDL
')
def utf8(self):
"""Try to enter UTF-8 mode (see RFC 6856). Returns server response.
"""
return self._shortcmd('
UTF8
')
def capa(self):
"""Return server capabilities (RFC 2449) as a dictionary
>>> c=poplib.POP3('
localhost
')
...
...
Lib/test/test_poplib.py
View file @
b8cd3e4e
...
...
@@ -44,6 +44,7 @@ line3\r\n\
class
DummyPOP3Handler
(
asynchat
.
async_chat
):
CAPAS
=
{
'UIDL'
:
[],
'IMPLEMENTATION'
:
[
'python-testlib-pop-server'
]}
enable_UTF8
=
False
def
__init__
(
self
,
conn
):
asynchat
.
async_chat
.
__init__
(
self
,
conn
)
...
...
@@ -142,6 +143,11 @@ class DummyPOP3Handler(asynchat.async_chat):
self
.
push
(
' '
.
join
(
_ln
))
self
.
push
(
'.'
)
def
cmd_utf8
(
self
,
arg
):
self
.
push
(
'+OK I know RFC6856'
if
self
.
enable_UTF8
else
'-ERR What is UTF8?!'
)
if
SUPPORTS_SSL
:
def
cmd_stls
(
self
,
arg
):
...
...
@@ -309,6 +315,16 @@ class TestPOP3Class(TestCase):
self
.
client
.
uidl
()
self
.
client
.
uidl
(
'foo'
)
def
test_utf8_raises_if_unsupported
(
self
):
self
.
server
.
handler
.
enable_UTF8
=
False
self
.
assertRaises
(
poplib
.
error_proto
,
self
.
client
.
utf8
)
def
test_utf8
(
self
):
self
.
server
.
handler
.
enable_UTF8
=
True
expected
=
b'+OK I know RFC6856'
result
=
self
.
client
.
utf8
()
self
.
assertEqual
(
result
,
expected
)
def
test_capa
(
self
):
capa
=
self
.
client
.
capa
()
self
.
assertTrue
(
'IMPLEMENTATION'
in
capa
.
keys
())
...
...
Misc/NEWS
View file @
b8cd3e4e
...
...
@@ -47,6 +47,8 @@ Core and Builtins
Library
-------
- Issue #21804: poplib now supports RFC 6856 (UTF8).
- Issue #18682: Optimized pprint functions for builtin scalar types.
- Issue #22027: smtplib now supports RFC 6531 (SMTPUTF8).
...
...
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