[Zope-Checkins] SVN: Zope/branches/2.10/ Fix for launchpad #267545: DateTime(DateTime()) should preserve the correct hour

Paul Winkler slinkp at gmail.com
Sun Sep 7 15:52:37 EDT 2008


Log message for revision 90922:
  Fix for launchpad #267545: DateTime(DateTime()) should preserve the correct hour

Changed:
  U   Zope/branches/2.10/doc/CHANGES.txt
  U   Zope/branches/2.10/lib/python/DateTime/DateTime.py
  U   Zope/branches/2.10/lib/python/DateTime/tests/testDateTime.py

-=-
Modified: Zope/branches/2.10/doc/CHANGES.txt
===================================================================
--- Zope/branches/2.10/doc/CHANGES.txt	2008-09-07 19:51:10 UTC (rev 90921)
+++ Zope/branches/2.10/doc/CHANGES.txt	2008-09-07 19:52:37 UTC (rev 90922)
@@ -24,6 +24,9 @@
 
       - integrated Hotfix-2008-08-12
 
+      - Launchpad #267545: DateTime(DateTime()) now preserves the
+        correct hour
+
       - Launchpad #262313: respect the 'Expand macros when editing' flag
         when editing a page template through the ZMI
 

Modified: Zope/branches/2.10/lib/python/DateTime/DateTime.py
===================================================================
--- Zope/branches/2.10/lib/python/DateTime/DateTime.py	2008-09-07 19:51:10 UTC (rev 90921)
+++ Zope/branches/2.10/lib/python/DateTime/DateTime.py	2008-09-07 19:52:37 UTC (rev 90922)
@@ -704,11 +704,8 @@
             if isinstance(arg, DateTime):
                 """ Construct a new DateTime instance from a given DateTime instance """
                 t = arg.timeTime()
-                tz = arg.timezone()
-                ms = (t - math.floor(t))
                 s,d = _calcSD(t)
-                yr,mo,dy,hr,mn,sc = gmtime(t)[:6]
-                sc = sc + ms
+                yr,mo,dy,hr,mn,sc,tz = arg.parts()
 
             elif isinstance(arg, (unicode, str)) and arg.lower() in self._tzinfo._zidx:
                 # Current time, to be displayed in specified timezone

Modified: Zope/branches/2.10/lib/python/DateTime/tests/testDateTime.py
===================================================================
--- Zope/branches/2.10/lib/python/DateTime/tests/testDateTime.py	2008-09-07 19:51:10 UTC (rev 90921)
+++ Zope/branches/2.10/lib/python/DateTime/tests/testDateTime.py	2008-09-07 19:52:37 UTC (rev 90922)
@@ -296,8 +296,10 @@
     def testCopyConstructor(self):
         d = DateTime('2004/04/04')
         self.assertEqual(DateTime(d), d)
-        d = DateTime('1999/04/12')
-        self.assertEqual(DateTime(d), d)
+        self.assertEqual(str(DateTime(d)), str(d))
+        d2 = DateTime('1999/04/12 01:00:00')
+        self.assertEqual(DateTime(d2), d2)
+        self.assertEqual(str(DateTime(d2)), str(d2))
 
     def testCopyConstructorPreservesTimezone(self):
         # test for https://bugs.launchpad.net/zope2/+bug/200007
@@ -308,8 +310,10 @@
         self.assertEqual(DateTime(d).timezone(), d.timezone())
         d2 = DateTime('2008/04/25 12:00:00 EST')
         self.assertEqual(DateTime(d2).timezone(), d2.timezone())
+        self.assertEqual(str(DateTime(d2)), str(d2))
         d3 = DateTime('2008/04/25 12:00:00 PST')
         self.assertEqual(DateTime(d3).timezone(), d3.timezone())
+        self.assertEqual(str(DateTime(d3)), str(d3))
 
 
     def testRFC822(self):



More information about the Zope-Checkins mailing list