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
e16e01fa
Commit
e16e01fa
authored
Nov 27, 2002
by
Martin v. Löwis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Patch #639112: fixes for None locale and tz.
parent
e4827eb2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
154 additions
and
61 deletions
+154
-61
Lib/_strptime.py
Lib/_strptime.py
+13
-5
Lib/test/test_strptime.py
Lib/test/test_strptime.py
+141
-56
No files found.
Lib/_strptime.py
View file @
e16e01fa
...
...
@@ -26,7 +26,6 @@ from re import compile as re_compile
from
re
import
IGNORECASE
from
string
import
whitespace
as
whitespace_string
__version__
=
(
2
,
1
,
6
)
__author__
=
"Brett Cannon"
__email__
=
"drifty@bigfoot.com"
...
...
@@ -287,13 +286,19 @@ class LocaleTime(object):
self
.
__timezone
=
self
.
__pad
(
time
.
tzname
,
0
)
def
__calc_lang
(
self
):
# Set self.lang by using locale.getlocale() or
# locale.getdefaultlocale().
# Set self.__lang by using locale.getlocale() or
# locale.getdefaultlocale(). If both turn up empty, set the attribute
# to ''. This is to stop calls to this method and to make sure
# strptime() can produce an re object correctly.
current_lang
=
locale
.
getlocale
(
locale
.
LC_TIME
)[
0
]
if
current_lang
:
self
.
__lang
=
current_lang
else
:
self
.
__lang
=
locale
.
getdefaultlocale
()[
0
]
current_lang
=
locale
.
getdefaultlocale
()[
0
]
if
current_lang
:
self
.
__lang
=
current_lang
else
:
self
.
__lang
=
''
class
TimeRE
(
dict
):
...
...
@@ -463,7 +468,10 @@ def strptime(data_string, format="%a %b %d %H:%M:%S %Y"):
julian
=
int
(
found_dict
[
'j'
])
elif
group_key
==
'Z'
:
found_zone
=
found_dict
[
'Z'
].
lower
()
if
locale_time
.
timezone
[
0
].
lower
()
==
found_zone
:
if
locale_time
.
timezone
[
0
]
==
locale_time
.
timezone
[
1
]:
pass
#Deals with bad locale setup where timezone info is
# the same; first found on FreeBSD 4.4 -current
elif
locale_time
.
timezone
[
0
].
lower
()
==
found_zone
:
tz
=
0
elif
locale_time
.
timezone
[
1
].
lower
()
==
found_zone
:
tz
=
1
...
...
Lib/test/test_strptime.py
View file @
e16e01fa
...
...
@@ -8,8 +8,6 @@ from test import test_support
import
_strptime
__version__
=
(
1
,
0
,
5
)
class
LocaleTime_Tests
(
unittest
.
TestCase
):
"""Tests for _strptime.LocaleTime."""
...
...
@@ -18,40 +16,51 @@ class LocaleTime_Tests(unittest.TestCase):
self
.
time_tuple
=
time
.
localtime
()
self
.
LT_ins
=
_strptime
.
LocaleTime
()
def
compare_against_time
(
self
,
testing
,
directive
,
tuple_position
,
error_msg
):
def
compare_against_time
(
self
,
testing
,
directive
,
tuple_position
,
error_msg
):
"""Helper method that tests testing against directive based on the
tuple_position of time_tuple. Uses error_msg as error message.
"""
strftime_output
=
time
.
strftime
(
directive
,
self
.
time_tuple
)
comparison
=
testing
[
self
.
time_tuple
[
tuple_position
]]
self
.
failUnless
(
strftime_output
in
testing
,
"%s: not found in tuple"
%
error_msg
)
self
.
failUnless
(
comparison
==
strftime_output
,
"%s: position within tuple incorrect; %s != %s"
%
(
error_msg
,
comparison
,
strftime_output
))
self
.
failUnless
(
strftime_output
in
testing
,
"%s: not found in tuple"
%
error_msg
)
self
.
failUnless
(
comparison
==
strftime_output
,
"%s: position within tuple incorrect; %s != %s"
%
(
error_msg
,
comparison
,
strftime_output
))
def
test_weekday
(
self
):
# Make sure that full and abbreviated weekday names are correct in
# both string and position with tuple
self
.
compare_against_time
(
self
.
LT_ins
.
f_weekday
,
'%A'
,
6
,
"Testing of full weekday name failed"
)
self
.
compare_against_time
(
self
.
LT_ins
.
a_weekday
,
'%a'
,
6
,
"Testing of abbreviated weekday name failed"
)
self
.
compare_against_time
(
self
.
LT_ins
.
f_weekday
,
'%A'
,
6
,
"Testing of full weekday name failed"
)
self
.
compare_against_time
(
self
.
LT_ins
.
a_weekday
,
'%a'
,
6
,
"Testing of abbreviated weekday name failed"
)
def
test_month
(
self
):
# Test full and abbreviated month names; both string and position
# within the tuple
self
.
compare_against_time
(
self
.
LT_ins
.
f_month
,
'%B'
,
1
,
"Testing against full month name failed"
)
self
.
compare_against_time
(
self
.
LT_ins
.
a_month
,
'%b'
,
1
,
"Testing against abbreviated month name failed"
)
self
.
compare_against_time
(
self
.
LT_ins
.
f_month
,
'%B'
,
1
,
"Testing against full month name failed"
)
self
.
compare_against_time
(
self
.
LT_ins
.
a_month
,
'%b'
,
1
,
"Testing against abbreviated month name failed"
)
def
test_am_pm
(
self
):
# Make sure AM/PM representation done properly
strftime_output
=
time
.
strftime
(
"%p"
,
self
.
time_tuple
)
self
.
failUnless
(
strftime_output
in
self
.
LT_ins
.
am_pm
,
"AM/PM representation not in tuple"
)
self
.
failUnless
(
strftime_output
in
self
.
LT_ins
.
am_pm
,
"AM/PM representation not in tuple"
)
if
self
.
time_tuple
[
3
]
<
12
:
position
=
0
else
:
position
=
1
self
.
failUnless
(
strftime_output
==
self
.
LT_ins
.
am_pm
[
position
],
"AM/PM representation in the wrong position within the tuple"
)
self
.
failUnless
(
strftime_output
==
self
.
LT_ins
.
am_pm
[
position
],
"AM/PM representation in the wrong position within the tuple"
)
def
test_timezone
(
self
):
# Make sure timezone is correct
if
time
.
strftime
(
"%Z"
,
self
.
time_tuple
):
self
.
compare_against_time
(
self
.
LT_ins
.
timezone
,
'%Z'
,
8
,
"Testing against timezone failed"
)
self
.
compare_against_time
(
self
.
LT_ins
.
timezone
,
'%Z'
,
8
,
"Testing against timezone failed"
)
def
test_date_time
(
self
):
# Check that LC_date_time, LC_date, and LC_time are correct
...
...
@@ -62,39 +71,56 @@ class LocaleTime_Tests(unittest.TestCase):
# output.
magic_date
=
(
1999
,
3
,
17
,
22
,
44
,
55
,
2
,
76
,
0
)
strftime_output
=
time
.
strftime
(
"%c"
,
magic_date
)
self
.
failUnless
(
strftime_output
==
time
.
strftime
(
self
.
LT_ins
.
LC_date_time
,
magic_date
),
"LC_date_time incorrect"
)
self
.
failUnless
(
strftime_output
==
time
.
strftime
(
self
.
LT_ins
.
LC_date_time
,
magic_date
),
"LC_date_time incorrect"
)
strftime_output
=
time
.
strftime
(
"%x"
,
magic_date
)
self
.
failUnless
(
strftime_output
==
time
.
strftime
(
self
.
LT_ins
.
LC_date
,
magic_date
),
"LC_date incorrect"
)
self
.
failUnless
(
strftime_output
==
time
.
strftime
(
self
.
LT_ins
.
LC_date
,
magic_date
),
"LC_date incorrect"
)
strftime_output
=
time
.
strftime
(
"%X"
,
magic_date
)
self
.
failUnless
(
strftime_output
==
time
.
strftime
(
self
.
LT_ins
.
LC_time
,
magic_date
),
"LC_time incorrect"
)
self
.
failUnless
(
strftime_output
==
time
.
strftime
(
self
.
LT_ins
.
LC_time
,
magic_date
),
"LC_time incorrect"
)
LT
=
_strptime
.
LocaleTime
(
am_pm
=
(
''
,
''
))
self
.
failUnless
(
LT
.
LC_time
,
"LocaleTime's LC directives cannot handle "
"empty strings"
)
def
test_lang
(
self
):
# Make sure lang is set
self
.
failUnless
(
self
.
LT_ins
.
lang
in
(
locale
.
getdefaultlocale
()[
0
],
locale
.
getlocale
(
locale
.
LC_TIME
)),
"Setting of lang failed"
)
self
.
failUnless
(
self
.
LT_ins
.
lang
in
(
locale
.
getdefaultlocale
()[
0
],
locale
.
getlocale
(
locale
.
LC_TIME
),
''
),
"Setting of lang failed"
)
def
test_by_hand_input
(
self
):
# Test passed-in initialization value checks
self
.
failUnless
(
_strptime
.
LocaleTime
(
f_weekday
=
range
(
7
)),
"Argument size check for f_weekday failed"
)
self
.
failUnless
(
_strptime
.
LocaleTime
(
f_weekday
=
range
(
7
)),
"Argument size check for f_weekday failed"
)
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
f_weekday
=
range
(
8
))
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
f_weekday
=
range
(
6
))
self
.
failUnless
(
_strptime
.
LocaleTime
(
a_weekday
=
range
(
7
)),
"Argument size check for a_weekday failed"
)
self
.
failUnless
(
_strptime
.
LocaleTime
(
a_weekday
=
range
(
7
)),
"Argument size check for a_weekday failed"
)
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
a_weekday
=
range
(
8
))
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
a_weekday
=
range
(
6
))
self
.
failUnless
(
_strptime
.
LocaleTime
(
f_month
=
range
(
12
)),
"Argument size check for f_month failed"
)
self
.
failUnless
(
_strptime
.
LocaleTime
(
f_month
=
range
(
12
)),
"Argument size check for f_month failed"
)
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
f_month
=
range
(
11
))
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
f_month
=
range
(
13
))
self
.
failUnless
(
len
(
_strptime
.
LocaleTime
(
f_month
=
range
(
12
)).
f_month
)
==
13
,
"dummy value for f_month not added"
)
self
.
failUnless
(
_strptime
.
LocaleTime
(
a_month
=
range
(
12
)),
"Argument size check for a_month failed"
)
self
.
failUnless
(
len
(
_strptime
.
LocaleTime
(
f_month
=
range
(
12
)).
f_month
)
==
13
,
"dummy value for f_month not added"
)
self
.
failUnless
(
_strptime
.
LocaleTime
(
a_month
=
range
(
12
)),
"Argument size check for a_month failed"
)
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
a_month
=
range
(
11
))
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
a_month
=
range
(
13
))
self
.
failUnless
(
len
(
_strptime
.
LocaleTime
(
a_month
=
range
(
12
)).
a_month
)
==
13
,
"dummy value for a_month not added"
)
self
.
failUnless
(
_strptime
.
LocaleTime
(
am_pm
=
range
(
2
)),
"Argument size check for am_pm failed"
)
self
.
failUnless
(
len
(
_strptime
.
LocaleTime
(
a_month
=
range
(
12
)).
a_month
)
==
13
,
"dummy value for a_month not added"
)
self
.
failUnless
(
_strptime
.
LocaleTime
(
am_pm
=
range
(
2
)),
"Argument size check for am_pm failed"
)
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
am_pm
=
range
(
1
))
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
am_pm
=
range
(
3
))
self
.
failUnless
(
_strptime
.
LocaleTime
(
timezone
=
range
(
2
)),
"Argument size check for timezone failed"
)
self
.
failUnless
(
_strptime
.
LocaleTime
(
timezone
=
range
(
2
)),
"Argument size check for timezone failed"
)
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
timezone
=
range
(
1
))
self
.
assertRaises
(
TypeError
,
_strptime
.
LocaleTime
,
timezone
=
range
(
3
))
...
...
@@ -108,35 +134,57 @@ class TimeRETests(unittest.TestCase):
def
test_getitem
(
self
):
# Make sure that __getitem__ works properly
self
.
failUnless
(
self
.
time_re
[
'm'
],
"Fetching 'm' directive (built-in) failed"
)
self
.
failUnless
(
self
.
time_re
[
'b'
],
"Fetching 'b' directive (built w/ __tupleToRE) failed"
)
self
.
failUnless
(
self
.
time_re
[
'm'
],
"Fetching 'm' directive (built-in) failed"
)
self
.
failUnless
(
self
.
time_re
[
'b'
],
"Fetching 'b' directive (built w/ __tupleToRE) failed"
)
for
name
in
self
.
locale_time
.
a_month
:
self
.
failUnless
(
self
.
time_re
[
'b'
].
find
(
name
)
!=
-
1
,
"Not all abbreviated month names in regex"
)
self
.
failUnless
(
self
.
time_re
[
'c'
],
"Fetching 'c' directive (built w/ format) failed"
)
self
.
failUnless
(
self
.
time_re
[
'c'
].
find
(
'%'
)
==
-
1
,
"Conversion of 'c' directive failed; '%' found"
)
self
.
failUnless
(
self
.
time_re
[
'b'
].
find
(
name
)
!=
-
1
,
"Not all abbreviated month names in regex"
)
self
.
failUnless
(
self
.
time_re
[
'c'
],
"Fetching 'c' directive (built w/ format) failed"
)
self
.
failUnless
(
self
.
time_re
[
'c'
].
find
(
'%'
)
==
-
1
,
"Conversion of 'c' directive failed; '%' found"
)
self
.
assertRaises
(
KeyError
,
self
.
time_re
.
__getitem__
,
'1'
)
def
test_pattern
(
self
):
# Test TimeRE.pattern
pattern_string
=
self
.
time_re
.
pattern
(
r"%a %A %d"
)
self
.
failUnless
(
pattern_string
.
find
(
self
.
locale_time
.
a_weekday
[
2
])
!=
-
1
,
"did not find abbreviated weekday in pattern string '%s'"
%
pattern_string
)
self
.
failUnless
(
pattern_string
.
find
(
self
.
locale_time
.
f_weekday
[
4
])
!=
-
1
,
"did not find full weekday in pattern string '%s'"
%
pattern_string
)
self
.
failUnless
(
pattern_string
.
find
(
self
.
time_re
[
'd'
])
!=
-
1
,
"did not find 'd' directive pattern string '%s'"
%
pattern_string
)
self
.
failUnless
(
pattern_string
.
find
(
self
.
locale_time
.
a_weekday
[
2
])
!=
-
1
,
"did not find abbreviated weekday in pattern string '%s'"
%
pattern_string
)
self
.
failUnless
(
pattern_string
.
find
(
self
.
locale_time
.
f_weekday
[
4
])
!=
-
1
,
"did not find full weekday in pattern string '%s'"
%
pattern_string
)
self
.
failUnless
(
pattern_string
.
find
(
self
.
time_re
[
'd'
])
!=
-
1
,
"did not find 'd' directive pattern string '%s'"
%
pattern_string
)
def
test_compile
(
self
):
# Check that compiled regex is correct
found
=
self
.
time_re
.
compile
(
r"%A"
).
match
(
self
.
locale_time
.
f_weekday
[
6
])
self
.
failUnless
(
found
and
found
.
group
(
'A'
)
==
self
.
locale_time
.
f_weekday
[
6
],
"re object for '%A' failed"
)
self
.
failUnless
(
found
and
found
.
group
(
'A'
)
==
self
.
locale_time
.
f_weekday
[
6
],
"re object for '%A' failed"
)
compiled
=
self
.
time_re
.
compile
(
r"%a %b"
)
found
=
compiled
.
match
(
"%s %s"
%
(
self
.
locale_time
.
a_weekday
[
4
],
self
.
locale_time
.
a_month
[
4
]))
found
=
compiled
.
match
(
"%s %s"
%
(
self
.
locale_time
.
a_weekday
[
4
],
self
.
locale_time
.
a_month
[
4
]))
self
.
failUnless
(
found
,
"Match failed with '%s' regex and '%s' string"
%
(
compiled
.
pattern
,
"%s %s"
%
(
self
.
locale_time
.
a_weekday
[
4
],
self
.
locale_time
.
a_month
[
4
])))
self
.
failUnless
(
found
.
group
(
'a'
)
==
self
.
locale_time
.
a_weekday
[
4
]
and
found
.
group
(
'b'
)
==
self
.
locale_time
.
a_month
[
4
],
"re object couldn't find the abbreviated weekday month in '%s' using '%s'; group 'a' = '%s', group 'b' = %s'"
%
(
found
.
string
,
found
.
re
.
pattern
,
found
.
group
(
'a'
),
found
.
group
(
'b'
)))
for
directive
in
(
'a'
,
'A'
,
'b'
,
'B'
,
'c'
,
'd'
,
'H'
,
'I'
,
'j'
,
'm'
,
'M'
,
'p'
,
'S'
,
'U'
,
'w'
,
'W'
,
'x'
,
'X'
,
'y'
,
'Y'
,
'Z'
,
'%'
):
"Match failed with '%s' regex and '%s' string"
%
(
compiled
.
pattern
,
"%s %s"
%
(
self
.
locale_time
.
a_weekday
[
4
],
self
.
locale_time
.
a_month
[
4
])))
self
.
failUnless
(
found
.
group
(
'a'
)
==
self
.
locale_time
.
a_weekday
[
4
]
and
found
.
group
(
'b'
)
==
self
.
locale_time
.
a_month
[
4
],
"re object couldn't find the abbreviated weekday month in "
"'%s' using '%s'; group 'a' = '%s', group 'b' = %s'"
%
(
found
.
string
,
found
.
re
.
pattern
,
found
.
group
(
'a'
),
found
.
group
(
'b'
)))
for
directive
in
(
'a'
,
'A'
,
'b'
,
'B'
,
'c'
,
'd'
,
'H'
,
'I'
,
'j'
,
'm'
,
'M'
,
'p'
,
'S'
,
'U'
,
'w'
,
'W'
,
'x'
,
'X'
,
'y'
,
'Y'
,
'Z'
,
'%'
):
compiled
=
self
.
time_re
.
compile
(
"%%%s"
%
directive
)
found
=
compiled
.
match
(
time
.
strftime
(
"%%%s"
%
directive
))
self
.
failUnless
(
found
,
"Matching failed on '%s' using '%s' regex"
%
(
time
.
strftime
(
"%%%s"
%
directive
),
compiled
.
pattern
))
self
.
failUnless
(
found
,
"Matching failed on '%s' using '%s' regex"
%
(
time
.
strftime
(
"%%%s"
%
directive
),
compiled
.
pattern
))
class
StrptimeTests
(
unittest
.
TestCase
):
"""Tests for _strptime.strptime."""
...
...
@@ -147,21 +195,28 @@ class StrptimeTests(unittest.TestCase):
def
test_TypeError
(
self
):
# Make sure ValueError is raised when match fails
self
.
assertRaises
(
ValueError
,
_strptime
.
strptime
,
data_string
=
"%d"
,
format
=
"%A"
)
self
.
assertRaises
(
ValueError
,
_strptime
.
strptime
,
data_string
=
"%d"
,
format
=
"%A"
)
def
test_returning_RE
(
self
):
# Make sure that an re can be returned
strp_output
=
_strptime
.
strptime
(
False
,
"%Y"
)
self
.
failUnless
(
isinstance
(
strp_output
,
type
(
re
.
compile
(
''
))),
"re object not returned correctly"
)
self
.
failUnless
(
_strptime
.
strptime
(
"1999"
,
strp_output
),
"Use or re object failed"
)
self
.
failUnless
(
isinstance
(
strp_output
,
type
(
re
.
compile
(
''
))),
"re object not returned correctly"
)
self
.
failUnless
(
_strptime
.
strptime
(
"1999"
,
strp_output
),
"Use of re object failed"
)
bad_locale_time
=
_strptime
.
LocaleTime
(
lang
=
"gibberish"
)
self
.
assertRaises
(
TypeError
,
_strptime
.
strptime
,
data_string
=
'1999'
,
format
=
strp_output
,
locale_time
=
bad_locale_time
)
self
.
assertRaises
(
TypeError
,
_strptime
.
strptime
,
data_string
=
'1999'
,
format
=
strp_output
,
locale_time
=
bad_locale_time
)
def
helper
(
self
,
directive
,
position
):
"""Helper fxn in testing."""
strf_output
=
time
.
strftime
(
"%%%s"
%
directive
,
self
.
time_tuple
)
strp_output
=
_strptime
.
strptime
(
strf_output
,
"%%%s"
%
directive
)
self
.
failUnless
(
strp_output
[
position
]
==
self
.
time_tuple
[
position
],
"testing of '%s' directive failed; '%s' -> %s != %s"
%
(
directive
,
strf_output
,
strp_output
[
position
],
self
.
time_tuple
[
position
]))
self
.
failUnless
(
strp_output
[
position
]
==
self
.
time_tuple
[
position
],
"testing of '%s' directive failed; '%s' -> %s != %s"
%
(
directive
,
strf_output
,
strp_output
[
position
],
self
.
time_tuple
[
position
]))
def
test_year
(
self
):
# Test that the year is handled properly
...
...
@@ -182,7 +237,9 @@ class StrptimeTests(unittest.TestCase):
self
.
helper
(
'H'
,
3
)
strf_output
=
time
.
strftime
(
"%I %p"
,
self
.
time_tuple
)
strp_output
=
_strptime
.
strptime
(
strf_output
,
"%I %p"
)
self
.
failUnless
(
strp_output
[
3
]
==
self
.
time_tuple
[
3
],
"testing of '%%I %%p' directive failed; '%s' -> %s != %s"
%
(
strf_output
,
strp_output
[
3
],
self
.
time_tuple
[
3
]))
self
.
failUnless
(
strp_output
[
3
]
==
self
.
time_tuple
[
3
],
"testing of '%%I %%p' directive failed; '%s' -> %s != %s"
%
(
strf_output
,
strp_output
[
3
],
self
.
time_tuple
[
3
]))
def
test_minute
(
self
):
# Test minute directives
...
...
@@ -204,10 +261,20 @@ class StrptimeTests(unittest.TestCase):
def
test_timezone
(
self
):
# Test timezone directives.
# When gmtime() is used with %Z, entire result of strftime() is empty.
# Check for equal timezone names deals with bad locale info when this
# occurs; first found in FreeBSD 4.4 -current
time_tuple
=
time
.
localtime
()
strf_output
=
time
.
strftime
(
"%Z"
)
#UTC does not have a timezone
strp_output
=
_strptime
.
strptime
(
strf_output
,
"%Z"
)
self
.
failUnless
(
strp_output
[
8
]
==
time_tuple
[
8
],
"timezone check failed; '%s' -> %s != %s"
%
(
strf_output
,
strp_output
[
8
],
time_tuple
[
8
]))
locale_time
=
_strptime
.
LocaleTime
()
if
locale_time
.
timezone
[
0
]
!=
locale_time
.
timezone
[
1
]:
self
.
failUnless
(
strp_output
[
8
]
==
time_tuple
[
8
],
"timezone check failed; '%s' -> %s != %s"
%
(
strf_output
,
strp_output
[
8
],
time_tuple
[
8
]))
else
:
self
.
failUnless
(
strp_output
[
8
]
==
-
1
,
"LocaleTime().timezone has duplicate values but "
"timzone value not set to -1"
)
def
test_date_time
(
self
):
# Test %c directive
...
...
@@ -228,7 +295,9 @@ class StrptimeTests(unittest.TestCase):
# Make sure % signs are handled properly
strf_output
=
time
.
strftime
(
"%m %% %Y"
,
self
.
time_tuple
)
strp_output
=
_strptime
.
strptime
(
strf_output
,
"%m %% %Y"
)
self
.
failUnless
(
strp_output
[
0
]
==
self
.
time_tuple
[
0
]
and
strp_output
[
1
]
==
self
.
time_tuple
[
1
],
"handling of percent sign failed"
)
self
.
failUnless
(
strp_output
[
0
]
==
self
.
time_tuple
[
0
]
and
strp_output
[
1
]
==
self
.
time_tuple
[
1
],
"handling of percent sign failed"
)
def
test_caseinsensitive
(
self
):
# Should handle names case-insensitively.
...
...
@@ -241,7 +310,8 @@ class StrptimeTests(unittest.TestCase):
"strptime does not handle capword names properly"
)
class
FxnTests
(
unittest
.
TestCase
):
"""Test functions that fill in info by validating result and are triggered properly."""
"""Test functions that fill in info by validating result and are triggered
properly."""
def
setUp
(
self
):
"""Create an initial time tuple."""
...
...
@@ -249,38 +319,53 @@ class FxnTests(unittest.TestCase):
def
test_julianday_result
(
self
):
# Test julianday
result
=
_strptime
.
julianday
(
self
.
time_tuple
[
0
],
self
.
time_tuple
[
1
],
self
.
time_tuple
[
2
])
self
.
failUnless
(
result
==
self
.
time_tuple
[
7
],
"julianday failed; %s != %s"
%
(
result
,
self
.
time_tuple
[
7
]))
result
=
_strptime
.
julianday
(
self
.
time_tuple
[
0
],
self
.
time_tuple
[
1
],
self
.
time_tuple
[
2
])
self
.
failUnless
(
result
==
self
.
time_tuple
[
7
],
"julianday failed; %s != %s"
%
(
result
,
self
.
time_tuple
[
7
]))
def
test_julianday_trigger
(
self
):
# Make sure julianday is called
strf_output
=
time
.
strftime
(
"%Y-%m-%d"
,
self
.
time_tuple
)
strp_output
=
_strptime
.
strptime
(
strf_output
,
"%Y-%m-%d"
)
self
.
failUnless
(
strp_output
[
7
]
==
self
.
time_tuple
[
7
],
"strptime did not trigger julianday(); %s != %s"
%
(
strp_output
[
7
],
self
.
time_tuple
[
7
]))
self
.
failUnless
(
strp_output
[
7
]
==
self
.
time_tuple
[
7
],
"strptime did not trigger julianday(); %s != %s"
%
(
strp_output
[
7
],
self
.
time_tuple
[
7
]))
def
test_gregorian_result
(
self
):
# Test gregorian
result
=
_strptime
.
gregorian
(
self
.
time_tuple
[
7
],
self
.
time_tuple
[
0
])
comparison
=
[
self
.
time_tuple
[
0
],
self
.
time_tuple
[
1
],
self
.
time_tuple
[
2
]]
self
.
failUnless
(
result
==
comparison
,
"gregorian() failed; %s != %s"
%
(
result
,
comparison
))
self
.
failUnless
(
result
==
comparison
,
"gregorian() failed; %s != %s"
%
(
result
,
comparison
))
def
test_gregorian_trigger
(
self
):
# Test that gregorian() is triggered
strf_output
=
time
.
strftime
(
"%j %Y"
,
self
.
time_tuple
)
strp_output
=
_strptime
.
strptime
(
strf_output
,
"%j %Y"
)
self
.
failUnless
(
strp_output
[
1
]
==
self
.
time_tuple
[
1
]
and
strp_output
[
2
]
==
self
.
time_tuple
[
2
],
"gregorian() not triggered; month -- %s != %s, day -- %s != %s"
%
(
strp_output
[
1
],
self
.
time_tuple
[
1
],
strp_output
[
2
],
self
.
time_tuple
[
2
]))
self
.
failUnless
(
strp_output
[
1
]
==
self
.
time_tuple
[
1
]
and
strp_output
[
2
]
==
self
.
time_tuple
[
2
],
"gregorian() not triggered; month -- %s != %s, "
"day -- %s != %s"
%
(
strp_output
[
1
],
self
.
time_tuple
[
1
],
strp_output
[
2
],
self
.
time_tuple
[
2
]))
def
test_dayofweek_result
(
self
):
# Test dayofweek
result
=
_strptime
.
dayofweek
(
self
.
time_tuple
[
0
],
self
.
time_tuple
[
1
],
self
.
time_tuple
[
2
])
result
=
_strptime
.
dayofweek
(
self
.
time_tuple
[
0
],
self
.
time_tuple
[
1
],
self
.
time_tuple
[
2
])
comparison
=
self
.
time_tuple
[
6
]
self
.
failUnless
(
result
==
comparison
,
"dayofweek() failed; %s != %s"
%
(
result
,
comparison
))
self
.
failUnless
(
result
==
comparison
,
"dayofweek() failed; %s != %s"
%
(
result
,
comparison
))
def
test_dayofweek_trigger
(
self
):
# Make sure dayofweek() gets triggered
strf_output
=
time
.
strftime
(
"%Y-%m-%d"
,
self
.
time_tuple
)
strp_output
=
_strptime
.
strptime
(
strf_output
,
"%Y-%m-%d"
)
self
.
failUnless
(
strp_output
[
6
]
==
self
.
time_tuple
[
6
],
"triggering of dayofweek() failed; %s != %s"
%
(
strp_output
[
6
],
self
.
time_tuple
[
6
]))
self
.
failUnless
(
strp_output
[
6
]
==
self
.
time_tuple
[
6
],
"triggering of dayofweek() failed; %s != %s"
%
(
strp_output
[
6
],
self
.
time_tuple
[
6
]))
class
Strptime12AMPMTests
(
unittest
.
TestCase
):
...
...
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