[Python-checkins] python/nondist/sandbox/datetime datetime.py,1.91,1.92 test_datetime.py,1.60,1.61
tim_one@users.sourceforge.net
tim_one@users.sourceforge.net
2002年12月10日 12:44:30 -0800
Update of /cvsroot/python/python/nondist/sandbox/datetime
In directory sc8-pr-cvs1:/tmp/cvs-serv2526
Modified Files:
datetime.py test_datetime.py
Log Message:
Added tests (necessarily trivial) for the new tzinfo base class.
Removed __str__ implementation from tzinfo: it can't know what to pass
to self.tzname!
Index: datetime.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/datetime.py,v
retrieving revision 1.91
retrieving revision 1.92
diff -C2 -d -r1.91 -r1.92
*** datetime.py 10 Dec 2002 20:10:49 -0000 1.91
--- datetime.py 10 Dec 2002 20:44:23 -0000 1.92
***************
*** 867,873 ****
raise NotImplementedError("tzinfo subclass must override dst()")
- def __str__(self):
- return self.tzname()
-
class timetz(time):
--- 867,870 ----
Index: test_datetime.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/test_datetime.py,v
retrieving revision 1.60
retrieving revision 1.61
diff -C2 -d -r1.60 -r1.61
*** test_datetime.py 10 Dec 2002 20:10:49 -0000 1.60
--- test_datetime.py 10 Dec 2002 20:44:24 -0000 1.61
***************
*** 16,19 ****
--- 16,24 ----
tzinfo, MINYEAR, MAXYEAR
+ class NotEnough(tzinfo):
+ def __init__(self, offset, name):
+ self.__offset = offset
+ self.__name = name
+
class FixedOffset(tzinfo):
def __init__(self, offset, name):
***************
*** 29,32 ****
--- 34,61 ----
return 0
+ class TestTZInfo(unittest.TestCase):
+
+ def test_abstractness(self):
+ self.assertRaises(NotImplementedError, tzinfo)
+
+ def test_subclass_must_override(self):
+ self.failUnless(issubclass(NotEnough, tzinfo))
+ ne = NotEnough(3, "NotByALongShot")
+ self.failUnless(isinstance(ne, tzinfo))
+
+ dt = datetime.now()
+ self.assertRaises(NotImplementedError, ne.tzname, dt)
+ self.assertRaises(NotImplementedError, ne.utcoffset, dt)
+ self.assertRaises(NotImplementedError, ne.dst, dt)
+
+ def test_normal(self):
+ fo = FixedOffset(3, "Three")
+ self.failUnless(isinstance(fo, tzinfo))
+ for dt in datetime.now(), None:
+ self.assertEqual(fo.utcoffset(dt), 3)
+ self.assertEqual(fo.tzname(dt), "Three")
+ self.assertEqual(fo.dst(dt), 0)
+
+
class TestTimeTZ(unittest.TestCase):
***************
*** 141,148 ****
def test_suite():
s4 = unittest.makeSuite(TestTimeTZ, 'test')
s5 = unittest.makeSuite(TestDateTime, 'test')
s6 = unittest.makeSuite(TestDateTimeTZ, 'test')
! return unittest.TestSuite([s4, s5, s6])
def test_main():
--- 170,178 ----
def test_suite():
+ s3 = unittest.makeSuite(TestTZInfo, 'test')
s4 = unittest.makeSuite(TestTimeTZ, 'test')
s5 = unittest.makeSuite(TestDateTime, 'test')
s6 = unittest.makeSuite(TestDateTimeTZ, 'test')
! return unittest.TestSuite([s3, s4, s5, s6])
def test_main():