Skip to content

Commit

Permalink
[3.6] bpo-30822: Fix testing of datetime module. (GH-2530) (GH-2783) (#…
Browse files Browse the repository at this point in the history
…2816)

* [3.6] bpo-30822: Fix testing of datetime module. (GH-2530) (GH-2783)

Only C implementation was tested.
(cherry picked from commit 287c559)

* [3.6] bpo-30822: Fix testing of datetime module. (GH-2530) (GH-2783)

Only C implementation was tested..
(cherry picked from commit 287c559)
  • Loading branch information
musically-ut authored and vstinner committed Jul 26, 2017
1 parent 0dbfab2 commit c52cea4
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 9 deletions.
3 changes: 2 additions & 1 deletion Lib/datetime.py
Original file line number Diff line number Diff line change
Expand Up @@ -2271,7 +2271,8 @@ def _name_from_offset(delta):
_check_tzinfo_arg, _check_tzname, _check_utc_offset, _cmp, _cmperror,
_date_class, _days_before_month, _days_before_year, _days_in_month,
_format_time, _is_leap, _isoweek1monday, _math, _ord2ymd,
_time, _time_class, _tzinfo_class, _wrap_strftime, _ymd2ord)
_time, _time_class, _tzinfo_class, _wrap_strftime, _ymd2ord,
_divide_and_round)
# XXX Since import * above excludes names that start with _,
# docstring does not get overwritten. In the future, it may be
# appropriate to maintain a single module level docstring and
Expand Down
12 changes: 7 additions & 5 deletions Lib/test/datetimetester.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,9 @@ def test_constants(self):
self.assertEqual(datetime.MAXYEAR, 9999)

def test_name_cleanup(self):
if '_Fast' not in str(self):
return
if '_Pure' in self.__class__.__name__:
self.skipTest('Only run for Fast C implementation')

datetime = datetime_module
names = set(name for name in dir(datetime)
if not name.startswith('__') and not name.endswith('__'))
Expand All @@ -72,8 +73,9 @@ def test_name_cleanup(self):
self.assertEqual(names - allowed, set([]))

def test_divide_and_round(self):
if '_Fast' in str(self):
return
if '_Fast' in self.__class__.__name__:
self.skipTest('Only run for Pure Python implementation')

dar = datetime_module._divide_and_round

self.assertEqual(dar(-10, -3), 3)
Expand Down Expand Up @@ -2851,7 +2853,7 @@ def tzname(self, dt): return self.tz
self.assertRaises(TypeError, t.strftime, "%Z")

# Issue #6697:
if '_Fast' in str(self):
if '_Fast' in self.__class__.__name__:
Badtzname.tz = '\ud800'
self.assertRaises(ValueError, t.strftime, "%Z")

Expand Down
8 changes: 5 additions & 3 deletions Lib/test/test_datetime.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
# XXX(gb) First run all the _Pure tests, then all the _Fast tests. You might
# not believe this, but in spite of all the sys.modules trickery running a _Pure
# test last will leave a mix of pure and native datetime stuff lying around.
test_classes = []
all_test_classes = []

for module, suffix in zip(test_modules, test_suffixes):
test_classes = []
Expand All @@ -33,7 +33,8 @@
suit = cls()
test_classes.extend(type(test) for test in suit)
for cls in test_classes:
cls.__name__ = name + suffix
cls.__name__ += suffix
cls.__qualname__ += suffix
@classmethod
def setUpClass(cls_, module=module):
cls_._save_sys_modules = sys.modules.copy()
Expand All @@ -46,9 +47,10 @@ def tearDownClass(cls_):
sys.modules.update(cls_._save_sys_modules)
cls.setUpClass = setUpClass
cls.tearDownClass = tearDownClass
all_test_classes.extend(test_classes)

def test_main():
run_unittest(*test_classes)
run_unittest(*all_test_classes)

if __name__ == "__main__":
test_main()
1 change: 1 addition & 0 deletions Misc/ACKS
Original file line number Diff line number Diff line change
Expand Up @@ -1583,6 +1583,7 @@ Doobee R. Tzeck
Eren Türkay
Lionel Ulmer
Adnan Umer
Utkarsh Upadhyay
Roger Upole
Daniel Urban
Michael Urman
Expand Down

0 comments on commit c52cea4

Please sign in to comment.