[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():

AltStyle によって変換されたページ (->オリジナル) /