Log message for revision 85837: Merged the slinkp-datetime-200007 branch: fix the DateTime(anotherDateTime) constructor to preserve timezones.
Changed: U Zope/branches/2.9/configure U Zope/branches/2.9/doc/CHANGES.txt U Zope/branches/2.9/lib/python/DateTime/DateTime.py U Zope/branches/2.9/lib/python/DateTime/tests/testDateTime.py -=- Modified: Zope/branches/2.9/configure =================================================================== --- Zope/branches/2.9/configure 2008-04-28 21:19:27 UTC (rev 85836) +++ Zope/branches/2.9/configure 2008-04-28 21:22:09 UTC (rev 85837) @@ -12,13 +12,13 @@ # Place the optimal target version number for Zope (as returned by sys.version) # below -TARGET="2.4.4" +TARGET="2.4.5" # Order a list of "acceptable" python version numbers (as returned by # sys.version) below in "best" to "worst" order, not including the # target version. Up to six acceptable python versions are allowed. # Do not include the target version number in this list! -ACCEPTABLE="2.4.2 2.4.3" +ACCEPTABLE="2.4.4 2.4.2 2.4.3" # provide the executable names for all the acceptable versions # (and the target version) below Modified: Zope/branches/2.9/doc/CHANGES.txt =================================================================== --- Zope/branches/2.9/doc/CHANGES.txt 2008-04-28 21:19:27 UTC (rev 85836) +++ Zope/branches/2.9/doc/CHANGES.txt 2008-04-28 21:22:09 UTC (rev 85837) @@ -8,6 +8,9 @@ Bugs fixed + - Launchpad #200007: DateTime(anotherDateTime) now preserves the + timezone. + - Launchpad #143813: zopectl now exits non-zero when child processes fail. Modified: Zope/branches/2.9/lib/python/DateTime/DateTime.py =================================================================== --- Zope/branches/2.9/lib/python/DateTime/DateTime.py 2008-04-28 21:19:27 UTC (rev 85836) +++ Zope/branches/2.9/lib/python/DateTime/DateTime.py 2008-04-28 21:22:09 UTC (rev 85837) @@ -712,12 +712,11 @@ if isinstance(arg, DateTime): """ Construct a new DateTime instance from a given DateTime instance """ t = arg.timeTime() - lt = safelocaltime(t) - tz = self.localZone(lt) + tz = arg.timezone() ms = (t - math.floor(t)) s,d = _calcSD(t) - yr,mo,dy,hr,mn,sc=lt[:6] - sc=sc+ms + yr,mo,dy,hr,mn,sc = gmtime(t)[:6] + sc = sc + ms elif isinstance(arg, (unicode, str)) and arg.lower() in self._tzinfo._zidx: # Current time, to be displayed in specified timezone Modified: Zope/branches/2.9/lib/python/DateTime/tests/testDateTime.py =================================================================== --- Zope/branches/2.9/lib/python/DateTime/tests/testDateTime.py 2008-04-28 21:19:27 UTC (rev 85836) +++ Zope/branches/2.9/lib/python/DateTime/tests/testDateTime.py 2008-04-28 21:22:09 UTC (rev 85837) @@ -299,6 +299,19 @@ d = DateTime('1999/04/12') self.assertEqual(DateTime(d), d) + def testCopyConstructorPreservesTimezone(self): + # test for https://bugs.launchpad.net/zope2/+bug/200007 + # This always worked in the local timezone, so we need at least + # two tests with different zones to be sure at least one of them + # is not local. + d = DateTime('2004/04/04') + self.assertEqual(DateTime(d).timezone(), d.timezone()) + d2 = DateTime('2008/04/25 12:00:00 EST') + self.assertEqual(DateTime(d2).timezone(), d2.timezone()) + d3 = DateTime('2008/04/25 12:00:00 PST') + self.assertEqual(DateTime(d3).timezone(), d3.timezone()) + + def testRFC822(self): '''rfc822 conversion''' dt = DateTime('2002-05-02T08:00:00+00:00') _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins