[CalendarServer-changes] [5191] CalendarServer/trunk/twext/python

source_changes at macosforge.org source_changes at macosforge.org
Tue Feb 23 15:48:58 PST 2010


Revision: 5191
          http://trac.macosforge.org/projects/calendarserver/changeset/5191
Author:   wsanchez at apple.com
Date:     2010-02-23 15:48:55 -0800 (Tue, 23 Feb 2010)
Log Message:
-----------
Add timezone tests and fixes

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

Modified: CalendarServer/trunk/twext/python/datetime.py
===================================================================
--- CalendarServer/trunk/twext/python/datetime.py	2010-02-23 22:05:34 UTC (rev 5190)
+++ CalendarServer/trunk/twext/python/datetime.py	2010-02-23 23:48:55 UTC (rev 5191)
@@ -71,12 +71,14 @@
     def __eq__(self, other):
         if isinstance(other, dateordatetime):
             other = other.dateOrDatetime()
-        return self._dateOrDatetime == other
+        dt1, dt2 = self._comparableDatetimes(other)
+        return dt1 == dt2
 
     def __ne__(self, other):
         if isinstance(other, dateordatetime):
-            other = other.dateOrDatetime
-        return self._dateOrDatetime != other
+            other = other.dateOrDatetime()
+        dt1, dt2 = self._comparableDatetimes(other)
+        return dt1 != dt2
 
     def __lt__(self, other):
         if not isinstance(other, comparableTypes):

Modified: CalendarServer/trunk/twext/python/test/test_datetime.py
===================================================================
--- CalendarServer/trunk/twext/python/test/test_datetime.py	2010-02-23 22:05:34 UTC (rev 5190)
+++ CalendarServer/trunk/twext/python/test/test_datetime.py	2010-02-23 23:48:55 UTC (rev 5191)
@@ -63,63 +63,75 @@
     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)
+
     def test_compare_datetime_date(self):
         return self._test_compare(datetime, date.today())
 
     def test_compare_datetime_datetime(self):
         return self._test_compare(datetime, datetime.now())
 
-    def _test_compare(self, baseclass, now):
+    def test_compare_datetime_datetime_tz(self):
+        return self._test_compare(datetime, datetime.now(), tz=utc)
+
+    def _test_compare(self, baseclass, now, tz=None):
         first  = dateordatetime(now + timedelta(days=0))
         second = dateordatetime(now + timedelta(days=1))
         third  = dateordatetime(now + timedelta(days=2))
 
+        def base(dodt):
+            if tz:
+                return dodt.dateOrDatetime().replace(tzinfo=tz)
+            else:
+                return dodt.dateOrDatetime()
+
         #
         # date & datetime's comparators do not correctly return
         # NotImplemented when they should, which breaks comparison
         # operators if date/datetime is first.  Boo.  Seriously weak.
         #
 
-        self.assertTrue (first                   == first.dateOrDatetime() )
-       #self.assertTrue (first.dateOrDatetime()  == first                  ) # Bug in datetime
-        self.assertTrue (first                   == first.dateOrDatetime() )
-        self.assertTrue (first                   != second.dateOrDatetime())
-        self.assertTrue (first.dateOrDatetime()  != second                 )
-        self.assertTrue (first                   != second                 )
-        self.assertTrue (first                   <  second                 )
-        self.assertTrue (second                  <  third                  )
-        self.assertTrue (first                   <  second.dateOrDatetime())
-       #self.assertTrue (second.dateOrDatetime() <  third                  ) # Bug in datetime
-        self.assertTrue (first                   <  second                 )
-        self.assertTrue (second                  <  third                  )
-       #self.assertTrue (first.dateOrDatetime()  <  second                 )
-        self.assertTrue (second                  <  third.dateOrDatetime() ) # Bug in datetime
-        self.assertTrue (first                   <= second                 )
-        self.assertTrue (second                  <= third                  )
-        self.assertTrue (first                   <= second.dateOrDatetime())
-       #self.assertTrue (second.dateOrDatetime() <= third                  ) # Bug in datetime
-        self.assertTrue (first                   <= second.dateOrDatetime())
-       #self.assertTrue (second.dateOrDatetime() <= third                  ) # Bug in datetime
-        self.assertTrue (first                   <= second                 )
-        self.assertTrue (second                  <= third                  )
-       #self.assertTrue (first.dateOrDatetime()  <= second                 ) # Bug in datetime
-        self.assertTrue (second                  <= third.dateOrDatetime() )
-        self.assertFalse(first                   >  second                 )
-        self.assertFalse(second                  >  third                  )
-        self.assertFalse(first                   >  second.dateOrDatetime())
-       #self.assertFalse(second.dateOrDatetime() >  third                  ) # Bug in datetime
-        self.assertFalse(first                   >  second                 )
-        self.assertFalse(second                  >  third                  )
-       #self.assertFalse(first.dateOrDatetime()  >  second                 ) # Bug in datetime
-        self.assertFalse(second                  >  third.dateOrDatetime() )
-        self.assertFalse(first                   >= second                 )
-        self.assertFalse(second                  >= third                  )
-        self.assertFalse(first                   >= second.dateOrDatetime())
-       #self.assertFalse(second.dateOrDatetime() >= third                  ) # Bug in datetime
-        self.assertFalse(first                   >= second                 )
-        self.assertFalse(second                  >= third                  )
-       #self.assertFalse(first.dateOrDatetime()  >= second                 ) # Bug in datetime
-        self.assertFalse(second                  >= third.dateOrDatetime() )
+        self.assertTrue (first        == base(first) )
+       #self.assertTrue (base(first)  == first       ) # Bug in datetime
+        self.assertTrue (first        == base(first) )
+        self.assertTrue (first        != base(second))
+        self.assertTrue (base(first)  != second      )
+        self.assertTrue (first        != second      )
+        self.assertTrue (first        <  second      )
+        self.assertTrue (second       <  third       )
+        self.assertTrue (first        <  base(second))
+       #self.assertTrue (base(second) <  third       ) # Bug in datetime
+        self.assertTrue (first        <  second      )
+        self.assertTrue (second       <  third       )
+       #self.assertTrue (base(first)  <  second      )
+        self.assertTrue (second       <  base(third) ) # Bug in datetime
+        self.assertTrue (first        <= second      )
+        self.assertTrue (second       <= third       )
+        self.assertTrue (first        <= base(second))
+       #self.assertTrue (base(second) <= third       ) # Bug in datetime
+        self.assertTrue (first        <= base(second))
+       #self.assertTrue (base(second) <= third       ) # Bug in datetime
+        self.assertTrue (first        <= second      )
+        self.assertTrue (second       <= third       )
+       #self.assertTrue (base(first)  <= second      ) # Bug in datetime
+        self.assertTrue (second       <= base(third) )
+        self.assertFalse(first        >  second      )
+        self.assertFalse(second       >  third       )
+        self.assertFalse(first        >  base(second))
+       #self.assertFalse(base(second) >  third       ) # Bug in datetime
+        self.assertFalse(first        >  second      )
+        self.assertFalse(second       >  third       )
+       #self.assertFalse(base(first)  >  second      ) # Bug in datetime
+        self.assertFalse(second       >  base(third) )
+        self.assertFalse(first        >= second      )
+        self.assertFalse(second       >= third       )
+        self.assertFalse(first        >= base(second))
+       #self.assertFalse(base(second) >= third       ) # Bug in datetime
+        self.assertFalse(first        >= second      )
+        self.assertFalse(second       >= third       )
+       #self.assertFalse(base(first)  >= second      ) # Bug in datetime
+        self.assertFalse(second       >= base(third) )
 
     def test_date_iCalendarString(self):
         d = date(2010, 2, 22)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100223/ad8532cb/attachment-0001.html>


More information about the calendarserver-changes mailing list