def ItemsToVobject(self): """Tests itemsToVObject, which converts Chandler items to vobject.""" event = Calendar.CalendarEvent(view = self.repo.view) event.displayName = "test" event.startTime = datetime.datetime(2010, 1, 1, 10) event.endTime = datetime.datetime(2010, 1, 1, 11) cal = ICalendar.itemsToVObject(self.repo.view, [event]) self.assert_(cal.vevent[0].summary[0].value == "test", "summary not set properly, summary is %s" % cal.vevent[0].summary[0].value) start = event.startTime.replace(tzinfo=ICalendar.localtime) self.assert_(cal.vevent[0].dtstart[0].value == start, "dtstart not set properly, dtstart is %s" % cal.vevent[0].summary[0].value) event = Calendar.CalendarEvent(view = self.repo.view) event.displayName = "test2" event.startTime = datetime.datetime(2010, 1, 1) event.allDay = True cal = ICalendar.itemsToVObject(self.repo.view, [event]) self.assert_(cal.vevent[0].dtstart[0].value == datetime.date(2010,1,1), "dtstart for allDay event not set properly, dtstart is %s" % cal.vevent[0].summary[0].value)
def open(self, path, flags): if flags == os.O_RDONLY: if path.startswith('sidebar/'): if path in self.openFiles: self.openFiles[path][1] += 1 return True self.view.refresh() dir, name = path.split('/', 1) sidebar = schema.ns('osaf.app', self.view).sidebarCollection for c in sidebar: if c.displayName == name: for item in c: if has_stamp(item, EventStamp): break else: return False cal = ICalendar.itemsToVObject(self.view, c) data = cal.serialize() self.openFiles[path] = [data, 1, flags] return True elif flags == os.O_WRONLY: if path.startswith('sidebar/'): if path.endswith('.ics'): self.openFiles[path] = ['', 1, flags] return True elif flags == os.O_CREAT: # coming from mknod (FUSE pre 2.5) if path.endswith('.ics'): self.openFiles[path] = ['', 1, 0] return True return False