Revision: 679fe006ff65
Author:   Mikko Korpela <[email protected]>
Date:     Tue Nov 22 12:27:39 2011
Log: Fix daylight saving time handling. robottime.py#_timestamp_to_millis use datetime to handle dst correctly -- it will automatically identify if dst was in use at the given time when assuming that the time is in local time
http://code.google.com/p/robotframework/source/detail?r=679fe006ff65

Modified:
 /src/robot/utils/robottime.py
 /utest/reporting/test_js_serializer.py

=======================================
--- /src/robot/utils/robottime.py       Sat Jun 18 14:28:07 2011
+++ /src/robot/utils/robottime.py       Tue Nov 22 12:27:39 2011
@@ -13,6 +13,7 @@
 #  limitations under the License.

 import time
+import datetime

 from normalizing import normalize
 from misc import plural_or_not
@@ -334,7 +335,7 @@

 def _timestamp_to_millis(timestamp, seps):
     Y, M, D, h, m, s, millis = _split_timestamp(timestamp, seps)
-    secs = time.mktime((Y, M, D, h, m, s, 0, 0, time.daylight))
+    secs = time.mktime(datetime.datetime(Y, M, D, h, m, s).timetuple())
     return int(round(1000*secs + millis))

 def _split_timestamp(timestamp, seps):
=======================================
--- /utest/reporting/test_js_serializer.py      Wed Nov  9 09:21:04 2011
+++ /utest/reporting/test_js_serializer.py      Tue Nov 22 12:27:39 2011
@@ -4,6 +4,7 @@
 import os

 import unittest
+import datetime
 from robot.output.xmllogger import XmlLogger

from robot.reporting.outputparser import OutputParser, CombiningOutputParser
@@ -310,7 +311,7 @@
     def test_generated_millis(self):
         self._context.timestamp('19790101 12:00:00.000')
         data_model = self._get_data_model(self.SUITE_XML)
-        basetime = 284040000 + time.altzone
+        basetime = time.mktime(datetime.datetime(1979,1,1,12).timetuple())
         data_model._set_generated(time.localtime(basetime))
         assert_equals(data_model._robot_data['baseMillis'], basetime*1000)
         assert_equals(data_model._robot_data['generatedMillis'], 0)

Reply via email to