From 3ecb28abcd7f41e63345b8212a18e99d54476c39 Mon Sep 17 00:00:00 2001 From: Utkarsh Upadhyay Date: Fri, 21 Jul 2017 02:14:54 +0200 Subject: [PATCH] [3.5] bpo-30822: Fix testing of datetime module. (GH-2530) (GH-2783) Only C implementation was tested.. (cherry picked from commit 287c5594edc1ca08db64d1f4739cc36bfe75ae75) --- Lib/datetime.py | 3 ++- Lib/test/datetimetester.py | 12 +++++++----- Lib/test/test_datetime.py | 1 + Misc/ACKS | 1 + 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Lib/datetime.py b/Lib/datetime.py index a2178c7ce8d0e8..1089a300164c39 100644 --- a/Lib/datetime.py +++ b/Lib/datetime.py @@ -2135,7 +2135,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 diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py index 0860db80f58101..64c9a7b6fbd268 100644 --- a/Lib/test/datetimetester.py +++ b/Lib/test/datetimetester.py @@ -53,8 +53,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('__')) @@ -64,8 +65,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) @@ -2733,7 +2735,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") diff --git a/Lib/test/test_datetime.py b/Lib/test/test_datetime.py index 2d4eb52c62c09c..b8d9b85aa10d88 100644 --- a/Lib/test/test_datetime.py +++ b/Lib/test/test_datetime.py @@ -27,6 +27,7 @@ if not (isinstance(cls, type) and issubclass(cls, unittest.TestCase)): continue cls.__name__ = name + suffix + cls.__qualname__ = name + suffix @classmethod def setUpClass(cls_, module=module): cls_._save_sys_modules = sys.modules.copy() diff --git a/Misc/ACKS b/Misc/ACKS index fbf110d801b5aa..539deb417070c1 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1547,6 +1547,7 @@ Doobee R. Tzeck Eren Türkay Lionel Ulmer Adnan Umer +Utkarsh Upadhyay Roger Upole Daniel Urban Michael Urman