From: <ps...@us...> - 2009-01-06 23:45:59
|
Revision: 1478 http://pywebsvcs.svn.sourceforge.net/pywebsvcs/?rev=1478&view=rev Author: psha Date: 2009-01-06 23:45:51 +0000 (Tue, 06 Jan 2009) Log Message: ----------- Run tests for different timezones (MSK, PST, VOST, UTC) Modified Paths: -------------- trunk/zsi/test/test_TCtimes.py Modified: trunk/zsi/test/test_TCtimes.py =================================================================== --- trunk/zsi/test/test_TCtimes.py 2008-12-12 14:24:40 UTC (rev 1477) +++ trunk/zsi/test/test_TCtimes.py 2009-01-06 23:45:51 UTC (rev 1478) @@ -1,11 +1,13 @@ #!/usr/bin/env python -import unittest, sys, tests_good, tests_bad, time +import unittest, sys, tests_good, tests_bad, time, os from ZSI import * try: import cStringIO as StringIO except ImportError: import StringIO +os.environ['TZ'] = 'Europe/Moscow' +time.tzset() class TestCase(unittest.TestCase): '''Examples from "Definitive XML Schema, Priscilla Walmsley, p237-246 @@ -18,23 +20,37 @@ '%s with local offset(%s): expecting "%s" got "%s"' %( msg, data, correct, stamp)) - def check_datetime_timezone(self): + def _wrap_timezone(self, f, *a, **kw): + oldtz = os.environ.get('TZ', 'UTC') + for tz in ['Europe/Moscow', 'Antarctica/Vostok', 'America/Los_Angeles', 'UTC']: + try: + os.environ['TZ'] = tz + time.tzset() + f(*a, **kw) + finally: + os.environ['TZ'] = oldtz + time.tzset() + + def _check_datetime_timezone(self): # UTC with local timezone offset # Base example from http://www.w3.org/TR/xmlschema11-2/#dateTime-lexical-mapping correct = "2002-10-10T17:00:00Z" for t in ['2002-10-10T12:00:00-05:00', '2002-10-10T19:00:00+02:00', '2002-10-10T17:00:00+00:00', '2002-10-10T17:00:00Z']: self._check_data2data(TC.gDateTime(), t, correct, 'dateTime') + check_datetime_timezone = lambda s: s._wrap_timezone(s._check_datetime_timezone) - def check_time_timezone(self): + def _check_time_timezone(self): correct = "17:30:00Z" for t in ['12:30:00-05:00', '19:30:00+02:00', '17:30:00+00:00']: self._check_data2data(TC.gTime(), t, correct, 'time') + check_time_timezone = lambda s: s._wrap_timezone(s._check_time_timezone) - def check_date_timezone(self): + def _check_date_timezone(self): correct = "2002-10-10" for t in ['2002-10-10-05:00', '2002-10-10+02:00', '2002-10-10+00:00', '2002-10-10Z']: self._check_data2data(TC.gDate(), t, correct, 'date') + check_date_timezone = lambda s: s._wrap_timezone(s._check_date_timezone) def check_valid_dateTime(self): typecode = TC.gDateTime() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |