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
5a38f80f
Commit
5a38f80f
authored
Apr 29, 2012
by
Alexander Belopolsky
Browse files
Options
Browse Files
Download
Plain Diff
Issue #10941: Fix imaplib.Internaldate2tuple to produce correct result near
the DST transition. Patch by Joe Peterson.
parents
1182351e
2420d831
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
45 additions
and
15 deletions
+45
-15
Lib/imaplib.py
Lib/imaplib.py
+3
-13
Lib/test/support.py
Lib/test/support.py
+30
-1
Lib/test/test_imaplib.py
Lib/test/test_imaplib.py
+8
-1
Misc/ACKS
Misc/ACKS
+1
-0
Misc/NEWS
Misc/NEWS
+3
-0
No files found.
Lib/imaplib.py
View file @
5a38f80f
...
...
@@ -22,7 +22,7 @@ Public functions: Internaldate2tuple
__version__
=
"2.58"
import
binascii
,
errno
,
random
,
re
,
socket
,
subprocess
,
sys
,
time
import
binascii
,
errno
,
random
,
re
,
socket
,
subprocess
,
sys
,
time
,
calendar
try
:
import
ssl
...
...
@@ -1347,19 +1347,9 @@ def Internaldate2tuple(resp):
zone
=
-
zone
tt
=
(
year
,
mon
,
day
,
hour
,
min
,
sec
,
-
1
,
-
1
,
-
1
)
utc
=
calendar
.
timegm
(
tt
)
-
zone
utc
=
time
.
mktime
(
tt
)
# Following is necessary because the time module has no 'mkgmtime'.
# 'mktime' assumes arg in local timezone, so adds timezone/altzone.
lt
=
time
.
localtime
(
utc
)
if
time
.
daylight
and
lt
[
-
1
]:
zone
=
zone
+
time
.
altzone
else
:
zone
=
zone
+
time
.
timezone
return
time
.
localtime
(
utc
-
zone
)
return
time
.
localtime
(
utc
)
...
...
Lib/test/support.py
View file @
5a38f80f
...
...
@@ -57,7 +57,7 @@ __all__ = [
"get_attribute"
,
"swap_item"
,
"swap_attr"
,
"requires_IEEE_754"
,
"TestHandler"
,
"Matcher"
,
"can_symlink"
,
"skip_unless_symlink"
,
"import_fresh_module"
,
"requires_zlib"
,
"PIPE_MAX_SIZE"
,
"failfast"
,
"anticipate_failure"
"anticipate_failure"
,
"run_with_tz"
]
class
Error
(
Exception
):
...
...
@@ -1099,6 +1099,35 @@ def run_with_locale(catstr, *locales):
return
inner
return
decorator
#=======================================================================
# Decorator for running a function in a specific timezone, correctly
# resetting it afterwards.
def
run_with_tz
(
tz
):
def
decorator
(
func
):
def
inner
(
*
args
,
**
kwds
):
if
'TZ'
in
os
.
environ
:
orig_tz
=
os
.
environ
[
'TZ'
]
else
:
orig_tz
=
None
os
.
environ
[
'TZ'
]
=
tz
time
.
tzset
()
# now run the function, resetting the tz on exceptions
try
:
return
func
(
*
args
,
**
kwds
)
finally
:
if
orig_tz
==
None
:
del
os
.
environ
[
'TZ'
]
else
:
os
.
environ
[
'TZ'
]
=
orig_tz
time
.
tzset
()
inner
.
__name__
=
func
.
__name__
inner
.
__doc__
=
func
.
__doc__
return
inner
return
decorator
#=======================================================================
# Big-memory-test support. Separate from 'resources' because memory use
# should be configurable.
...
...
Lib/test/test_imaplib.py
View file @
5a38f80f
...
...
@@ -11,7 +11,7 @@ import socketserver
import
time
import
calendar
from
test.support
import
reap_threads
,
verbose
,
transient_internet
from
test.support
import
reap_threads
,
verbose
,
transient_internet
,
run_with_tz
import
unittest
try
:
...
...
@@ -36,6 +36,13 @@ class TestImaplib(unittest.TestCase):
b'25 (INTERNALDATE "31-Dec-1999 12:30:00 -1130")'
)
self
.
assertEqual
(
time
.
mktime
(
tt
),
t0
)
@
run_with_tz
(
'MST+07MDT,M4.1.0,M10.5.0'
)
def
test_Internaldate2tuple_issue10941
(
self
):
self
.
assertNotEqual
(
imaplib
.
Internaldate2tuple
(
b'25 (INTERNALDATE "02-Apr-2000 02:30:00 +0000")'
),
imaplib
.
Internaldate2tuple
(
b'25 (INTERNALDATE "02-Apr-2000 03:30:00 +0000")'
))
def
test_that_Time2Internaldate_returns_a_result
(
self
):
# We can check only that it successfully produces a result,
# not the correctness of the result itself, since the result
...
...
Misc/ACKS
View file @
5a38f80f
...
...
@@ -770,6 +770,7 @@ Alexandre Parenteau
Dan Parisien
Harri Pasanen
Gaël Pasgrimaud
Joe Peterson
Randy Pausch
Samuele Pedroni
Marcel van der Peijl
...
...
Misc/NEWS
View file @
5a38f80f
...
...
@@ -84,6 +84,9 @@ Core and Builtins
Library
-------
- Issue #10941: Fix imaplib.Internaldate2tuple to produce correct result near
the DST transition. Patch by Joe Peterson.
- Issue #9154: Fix parser module to understand function annotations.
- Issue #6085: In http.server.py SimpleHTTPServer.address_string returns the
...
...
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