[CalendarServer-changes] [5193] CalendarServer/trunk/twext/python/test/test_datetime.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Feb 24 12:40:20 PST 2010


Revision: 5193
          http://trac.macosforge.org/projects/calendarserver/changeset/5193
Author:   wsanchez at apple.com
Date:     2010-02-24 12:40:20 -0800 (Wed, 24 Feb 2010)
Log Message:
-----------
Test with both UTC and EST time zones.

Modified Paths:
--------------
    CalendarServer/trunk/twext/python/test/test_datetime.py

Modified: CalendarServer/trunk/twext/python/test/test_datetime.py
===================================================================
--- CalendarServer/trunk/twext/python/test/test_datetime.py	2010-02-24 19:05:06 UTC (rev 5192)
+++ CalendarServer/trunk/twext/python/test/test_datetime.py	2010-02-24 20:40:20 UTC (rev 5193)
@@ -15,21 +15,37 @@
 ##
 
 from datetime import date, datetime, timedelta
+from dateutil.tz import tzstr
 
+from twisted.internet.defer import DeferredList
+
 from twext.python.datetime import dateordatetime, timerange, utc
 
 from twistedcaldav.test.util import TestCase, testUnimplemented
 
+edt = tzstr("EST5EDT")
 
+
+def timezones(f):
+    """
+    Decorator for a test to be called with multiple timezones.
+    """
+    return lambda self: DeferredList([
+        d for d in (
+            f(self, tz) for tz in (utc, edt)
+        ) if d is not None
+    ])
+
 class DatetimeTests(TestCase):
     def test_date_date(self):
         d = date.today()
         dodt = dateordatetime(d)
         self.assertEquals(dodt.date(), d)
 
-    def test_date_date_tz(self):
+    @timezones
+    def test_date_date_tz(self, tz):
         d = date.today()
-        dodt = dateordatetime(d, defaultTZ=utc)
+        dodt = dateordatetime(d, defaultTZ=tz)
         self.assertEquals(dodt.date(), d)
 
     def test_date_datetime(self):
@@ -37,10 +53,11 @@
         dodt = dateordatetime(d)
         self.assertEquals(dodt.datetime(), datetime(d.year, d.month, d.day))
 
-    def test_date_datetime_tz(self):
+    @timezones
+    def test_date_datetime_tz(self, tz):
         d = date.today()
-        dodt = dateordatetime(d, defaultTZ=utc)
-        self.assertEquals(dodt.datetime(), datetime(d.year, d.month, d.day, tzinfo=utc))
+        dodt = dateordatetime(d, defaultTZ=tz)
+        self.assertEquals(dodt.datetime(), datetime(d.year, d.month, d.day, tzinfo=tz))
 
     def test_datetime_date(self):
         dt = datetime.now()
@@ -52,9 +69,10 @@
         dodt = dateordatetime(dt)
         self.assertEquals(dodt.datetime(), dt)
 
-    def test_datetime_datetime_tz(self):
+    @timezones
+    def test_datetime_datetime_tz(self, tz):
         dt = datetime.now()
-        dodt = dateordatetime(dt, defaultTZ=utc)
+        dodt = dateordatetime(dt, defaultTZ=tz)
         self.assertEquals(dodt.datetime(), dt)
 
     def test_compare_date_date(self):
@@ -63,8 +81,9 @@
     def test_compare_date_datetime(self):
         return self._test_compare(date, datetime.now())
 
-    def test_compare_date_datetime_tz(self):
-        return self._test_compare(date, datetime.now(), tz=utc)
+    @timezones
+    def test_compare_date_datetime_tz(self, tz):
+        return self._test_compare(date, datetime.now(), tz=tz)
 
     def test_compare_datetime_date(self):
         return self._test_compare(datetime, date.today())
@@ -72,8 +91,9 @@
     def test_compare_datetime_datetime(self):
         return self._test_compare(datetime, datetime.now())
 
-    def test_compare_datetime_datetime_tz(self):
-        return self._test_compare(datetime, datetime.now(), tz=utc)
+    @timezones
+    def test_compare_datetime_datetime_tz(self, tz):
+        return self._test_compare(datetime, datetime.now(), tz=tz)
 
     def _test_compare(self, baseclass, now, tz=None):
         first  = dateordatetime(now + timedelta(days=0))
@@ -150,8 +170,9 @@
 
     @testUnimplemented
     def test_datetime_iCalendarString_tz(self):
-        # Need to test a non-UTC timezone also
-        raise NotImplementedError()
+        dt = datetime(2010, 2, 22, 17, 44, 42, 98303, tzinfo=edt)
+        dodt = dateordatetime(dt)
+        self.assertEquals(dodt.iCalendarString(), "20100222T174442XXXXXX")
 
     @testUnimplemented
     def test_asTimeZone(self):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100224/306cb52f/attachment.html>


More information about the calendarserver-changes mailing list