Esempio n. 1
0
    def setAttributes(self, item, doWho=True):
        try:
            savedItems = self.savedAttrs
        except AttributeError:
            self.savedAttrs = {}
        
        savedAttrs = SavedAttrs()
        self.savedAttrs[item.itsName] = savedAttrs
            
        displayName = 'aTitleOrHeadline'
        item.displayName = displayName
        savedAttrs.displayName = displayName
        
        item.createdOn = self.savedAttrs[item.itsName].createdOn = datetime.now(item.itsView.tzinfo.default)
    
        if has_stamp(item, pim.TaskStamp):
            task = pim.TaskStamp(item)
            # Add some attributes here...
        
        if has_stamp(item, pim.EventStamp):
            event = pim.EventStamp(item)
            
        if has_stamp(item, Mail.MailStamp):
            mail = Mail.MailStamp(item)

        """
    def setAttributes(self, item, doWho=True):
        try:
            savedItems = self.savedAttrs
        except AttributeError:
            self.savedAttrs = {}

        savedAttrs = SavedAttrs()
        self.savedAttrs[item.itsName] = savedAttrs

        displayName = 'aTitleOrHeadline'
        item.displayName = displayName
        savedAttrs.displayName = displayName

        item.createdOn = self.savedAttrs[
            item.itsName].createdOn = datetime.now(item.itsView.tzinfo.default)

        if has_stamp(item, pim.TaskStamp):
            task = pim.TaskStamp(item)
            # Add some attributes here...

        if has_stamp(item, pim.EventStamp):
            event = pim.EventStamp(item)

        if has_stamp(item, Mail.MailStamp):
            mail = Mail.MailStamp(item)
        """
Esempio n. 3
0
 def parse_for_reminder(self):
     if not self.handled_reminder:
         startTime, endTime, countFlag, typeFlag = self.parse_tuple
         # If there is a date/time range, treat the message as an event
         if not has_stamp(self.item, EventStamp) and typeFlag != 0 :
             self.item.userReminderTime = startTime
         self.handled_reminder = True
Esempio n. 4
0
 def parse_for_event(self):
     if not self.handled_event:
         startTime, endTime, countFlag, typeFlag = self.parse_tuple
         # If there is a date/time range, treat the message as an event
         if startTime != endTime and not has_stamp(self.item, EventStamp):
             self.set_event_attributes()
         self.handled_event = True
 def traverseStampSquence(self, item, sequence):
     for operation, stampClass in sequence:
         if verbose:
             message = "stamping %s: %s %s" % \
                     (item.itsKind.itsName,
                      operation,
                      stampClass)
             logging.info(message)
         stampItem = stampClass(item)
         getattr(stampItem, operation)()  # i.e. stampClass(item).add() or
         # stampClass(item).remove()
         self.assertAttributes(item)
         if operation == 'add':
             self.failUnless(has_stamp(item, stampClass))
Esempio n. 6
0
 def traverseStampSquence(self, item, sequence):
     for operation, stampClass in sequence:
         if verbose:
             message = "stamping %s: %s %s" % \
                     (item.itsKind.itsName, 
                      operation,
                      stampClass)
             logging.info(message)
         stampItem = stampClass(item)
         getattr(stampItem, operation)() # i.e. stampClass(item).add() or
                                         # stampClass(item).remove()
         self.assertAttributes(item)
         if operation == 'add':
             self.failUnless(has_stamp(item, stampClass))
        def _verifyCalendarEvent(event):
            self.failUnless(stamping.has_stamp(event, Calendar.EventStamp))

            self.assertEqual(event.summary, uw("simple headline"))

            self.assertEqual(event.itsItem.importance, 'fyi')
            self.assertEqual(getEventValue(event, 'importance'), 'fyi')

            self.assertEqual(event.transparency, "confirmed")
            self.assertEqual(getEventValue(event, 'transparency'), "confirmed")

            self.assertEqual(event.allDay, False)
            self.assertEqual(getEventValue(event, 'allDay'), False)

            self.assertEqual(event.anyTime, True)
            self.assertEqual(getEventValue(event, 'anyTime'), True)
Esempio n. 8
0
        def _verifyCalendarEvent(event):
            self.failUnless(stamping.has_stamp(event, Calendar.EventStamp))

            self.assertEqual(event.summary, uw("simple headline"))

            self.assertEqual(event.itsItem.importance, "fyi")
            self.assertEqual(getEventValue(event, "importance"), "fyi")

            self.assertEqual(event.transparency, "confirmed")
            self.assertEqual(getEventValue(event, "transparency"), "confirmed")

            self.assertEqual(event.allDay, False)
            self.assertEqual(getEventValue(event, "allDay"), False)

            self.assertEqual(event.anyTime, True)
            self.assertEqual(getEventValue(event, "anyTime"), True)
Esempio n. 9
0
    def setUp(self):
        super(TestReplyReplyAllForward, self).setUp()
        # Set the default timezone so that we'll get correct
        # format for dates in forwarded messages

        defaultTzinfo = self.view.tzinfo.getInstance("US/Hawaii")
        self.savedTzinfo = self.view.tzinfo.setDefault(defaultTzinfo)

        self.messageOne = message.messageTextToKind(self.view, self.M1)[1]
        self.messageTwo = message.messageTextToKind(self.view, self.M2)[1]
        self.messageThree = message.messageTextToKind(self.view, self.M3)[1]
        self.messageFour = message.messageTextToKind(self.view, self.M4)[1]

        self.assertTrue(isinstance(self.messageOne, MailStamp))
        self.assertTrue(isinstance(self.messageTwo, MailStamp))
        self.assertTrue(isinstance(self.messageThree, MailStamp))
        self.assertTrue(isinstance(self.messageFour, MailStamp))
        self.assertTrue(isinstance(self.messageFour, MailStamp))

        #This is also an event
        self.assertTrue(has_stamp(self.messageFour.itsItem, EventStamp))
Esempio n. 10
0
    def testCalendarEvent(self):
        from i18n import ChandlerMessageFactory

        event = Calendar.CalendarEvent(itsParent=self.sandbox)

        # Call InitOutgoingAttributes() on the created event, the
        # hook for item/stamp creation in the Chandler UI.
        item = event.itsItem
        event.InitOutgoingAttributes()

        newEventTitle = ChandlerMessageFactory(u"New Event")

        self.failUnless(stamping.has_stamp(event, Calendar.EventStamp))
        self.failUnlessEqual(item.displayName, newEventTitle)

        newNote = type(item)(itsParent=self.sandbox)
        newNote.InitOutgoingAttributes()  # Should be _(u"Untitled")

        # Make sure the new event title gets reset on unstamp
        event.remove()

        self.failUnlessEqual(item.displayName, newNote.displayName)
    def testCalendarEvent(self):
        from i18n import ChandlerMessageFactory

        event = Calendar.CalendarEvent(itsParent=self.sandbox, )

        # Call InitOutgoingAttributes() on the created event, the
        # hook for item/stamp creation in the Chandler UI.
        item = event.itsItem
        event.InitOutgoingAttributes()

        newEventTitle = ChandlerMessageFactory(u"New Event")

        self.failUnless(stamping.has_stamp(event, Calendar.EventStamp))
        self.failUnlessEqual(item.displayName, newEventTitle)

        newNote = type(item)(itsParent=self.sandbox)
        newNote.InitOutgoingAttributes()  # Should be _(u"Untitled")

        # Make sure the new event title gets reset on unstamp
        event.remove()

        self.failUnlessEqual(item.displayName, newNote.displayName)
Esempio n. 12
0
    def set_event_attributes(self):
        if not has_stamp(self.item, EventStamp):
            EventStamp(self.item).add()

        startTime, endTime, countFlag, typeFlag = self.parse_tuple
        setEventDateTime(self.item, startTime, endTime, typeFlag)    
Esempio n. 13
0
    def process(cls, state):
        for stamp in cls.stamp_types:
            if not has_stamp(state.item, stamp):
                stamp(state.item).add()

        cls.process_stamp(state)
Esempio n. 14
0
    def testStamping(self):
        view = self.sandbox.itsView
        
        # Get the stamp kinds
        mailStamp = Mail.MailStamp
        taskStamp = pim.TaskStamp
        eventStamp = Calendar.EventStamp
        noteKind = pim.Note.getKind(view)

        # start out with a Note
        aNote = pim.Note("noteItem1", itsParent=self.sandbox)
        self.setAttributes(aNote, doWho=False)
        self.assertAttributes(aNote)
        add = 'add'
        remove = 'remove'

        # stamp everything on and off the note
        self.traverseStampSquence(aNote, ((add, mailStamp),
                                          (add, taskStamp),
                                          (add, eventStamp),
                                          (remove, eventStamp),
                                          (remove, taskStamp),
                                          (remove, mailStamp)))

        # stamp everything on again, remove in a different order
        self.traverseStampSquence(aNote, ((add, mailStamp),
                                          (add, taskStamp),
                                          (add, eventStamp),
                                          (remove, mailStamp),
                                          (remove, taskStamp),
                                          (remove, eventStamp)))
        self.assertAttributes(aNote)

        # Create a Task, and do all kinds of stamping on it
        aTask = pim.Task("aTask", itsParent=self.sandbox).itsItem
        self.setAttributes(aTask)

        self.traverseStampSquence(aTask, ((add, eventStamp),
                                          (remove, taskStamp)))
        # now it's an Event

        self.traverseStampSquence(aTask, ((add, mailStamp),
                                          (remove, mailStamp)))

        self.traverseStampSquence(aTask, ((add, mailStamp),
                                          (add, taskStamp),
                                          (remove, mailStamp),
                                          (remove, taskStamp)))

        self.traverseStampSquence(aTask, ((add, taskStamp),
                                          (add, mailStamp),
                                          (remove, mailStamp),
                                          (remove, taskStamp)))

        self.traverseStampSquence(aTask, ((add, mailStamp),
                                          (remove, eventStamp)))
        # now it's a Mail

        self.traverseStampSquence(aTask, ((add, taskStamp),
                                          (remove, mailStamp)))
        # it's a Task again

        self.traverseStampSquence(aTask, ((add, mailStamp),
                                          (remove, taskStamp)))

        self.traverseStampSquence(aTask, ((add, taskStamp),
                                          (remove, mailStamp)))
        # it's a Task again

        self.traverseStampSquence(aTask, ((add, eventStamp),
                                          (remove, taskStamp),
                                          (add, mailStamp),
                                          (remove, eventStamp),
                                          (add, taskStamp),
                                          (remove, mailStamp)))
        self.failUnless(has_stamp(aTask, taskStamp))

        # check stamping on an Event
        anEvent = Calendar.CalendarEvent("anEvent", itsParent=self.sandbox).itsItem
        self.setAttributes(anEvent)

        # round-robin its Kind back to event
        self.traverseStampSquence(anEvent, ((add, mailStamp),
                                            (remove, eventStamp),
                                            (add, taskStamp),
                                            (remove, mailStamp),
                                            (add, eventStamp),
                                            (remove, taskStamp)))
        self.failUnless(has_stamp(anEvent, eventStamp))

        # check stamping on a Mail Message
        aMessage = Mail.MailMessage("aMessage", itsParent=self.sandbox).itsItem
        self.setAttributes(aMessage)
        self.traverseStampSquence(aMessage, ((add, eventStamp),
                                             (add, taskStamp),
                                             (remove, eventStamp),
                                             (remove, taskStamp)))
        self.failUnless(has_stamp(aMessage, mailStamp))

        # now mixin some arbitrary Kind
        #anotherKind = view.findPath('//parcels/osaf/framework/blocks/Block')

        # stamp an event, mail, task with another kind
        #aNote.StampKind(add, anotherKind)
        #aTask.StampKind(add, anotherKind)
        #anEvent.StampKind(add, anotherKind)
        #aMessage.StampKind(add, anotherKind)

        #self.assertKinds(aNote, (noteKind, anotherKind))
        #self.assertKinds(aTask, (taskKind, anotherKind))
        #self.assertKinds(anEvent, (eventKind, anotherKind))
        #self.assertKinds(aMessage, (mailKind, anotherKind))

        # unstamp with another kind
        #aNote.StampKind(remove, anotherKind)
        #aTask.StampKind(remove, anotherKind)
        #anEvent.StampKind(remove, anotherKind)
        #aMessage.StampKind(remove, anotherKind)

        # see that they still have their attributes
        #self.assertKinds(aNote, (noteKind, ))
        #self.assertKinds(aTask, (taskKind, ))
        #self.assertKinds(anEvent, (eventKind, ))
        #self.assertKinds(aMessage, (mailKind, ))

        # Test some failure cases
        # These cases should produce suitable warning messages in Chandler.log
        if testFailureCases:
            anotherEvent = Calendar.CalendarEvent("anotherEvent", itsParent=self.sandbox).itsItem
            self.setAttributes(anotherEvent)
            self.failUnless(has_stamp(anotherEvent, eventStamp))
            # Could use assertRaises here, but it's syntax with respect to parameters is
            #   not clear with my complex arguments, so try/except/else is more readable.
            try:
                # double stamping
                self.traverseStampSquence(anotherEvent, ((add, mailStamp),
                                                         (add, mailStamp)))
            except StampAlreadyPresentError:
                pass
            else:
                self.failUnless(False, "Double stamping should raise an exception!")

            try:
                # unstamping something not present
                self.traverseStampSquence(anotherEvent, ((remove, taskStamp), ))
            except StampNotPresentError:
                pass
            else:
                self.failUnless(False, "Unstamping a stamp not present should raise an exception!")
            # Test for Bug:6151: Make sure items don't disappear
            # from the all collection if they're unstamped
            #
            # Make an email ...
            aMessage = Mail.MailMessage("aNewMessage", itsParent=self.sandbox)
            self.setAttributes(aMessage.itsItem)

            # Make sure it's in "Out"
            aMessage.fromMe = True
            outCollection = schema.ns("osaf.pim", view).outCollection

            self.failUnless(aMessage.itsItem in outCollection)

            # unstamp its emailness
            self.traverseStampSquence(aMessage.itsItem,
                                      (('add', taskStamp),
                                      ('remove', mailStamp)))
            
            allCollection = schema.ns("osaf.pim", view).allCollection
            self.failUnless(aMessage.itsItem in allCollection)
Esempio n. 15
0
 def _verifyTask(taskItem):
     self.failUnless(has_stamp(taskItem, TaskStamp))
     self.failUnlessEqual(taskItem.displayName, uw("test headline"))
     self.failUnlessEqual(taskItem.importance, 'important')
    def testStamping(self):
        view = self.sandbox.itsView

        # Get the stamp kinds
        mailStamp = Mail.MailStamp
        taskStamp = pim.TaskStamp
        eventStamp = Calendar.EventStamp
        noteKind = pim.Note.getKind(view)

        # start out with a Note
        aNote = pim.Note("noteItem1", itsParent=self.sandbox)
        self.setAttributes(aNote, doWho=False)
        self.assertAttributes(aNote)
        add = 'add'
        remove = 'remove'

        # stamp everything on and off the note
        self.traverseStampSquence(aNote,
                                  ((add, mailStamp), (add, taskStamp),
                                   (add, eventStamp), (remove, eventStamp),
                                   (remove, taskStamp), (remove, mailStamp)))

        # stamp everything on again, remove in a different order
        self.traverseStampSquence(aNote,
                                  ((add, mailStamp), (add, taskStamp),
                                   (add, eventStamp), (remove, mailStamp),
                                   (remove, taskStamp), (remove, eventStamp)))
        self.assertAttributes(aNote)

        # Create a Task, and do all kinds of stamping on it
        aTask = pim.Task("aTask", itsParent=self.sandbox).itsItem
        self.setAttributes(aTask)

        self.traverseStampSquence(aTask,
                                  ((add, eventStamp), (remove, taskStamp)))
        # now it's an Event

        self.traverseStampSquence(aTask,
                                  ((add, mailStamp), (remove, mailStamp)))

        self.traverseStampSquence(aTask,
                                  ((add, mailStamp), (add, taskStamp),
                                   (remove, mailStamp), (remove, taskStamp)))

        self.traverseStampSquence(aTask,
                                  ((add, taskStamp), (add, mailStamp),
                                   (remove, mailStamp), (remove, taskStamp)))

        self.traverseStampSquence(aTask,
                                  ((add, mailStamp), (remove, eventStamp)))
        # now it's a Mail

        self.traverseStampSquence(aTask,
                                  ((add, taskStamp), (remove, mailStamp)))
        # it's a Task again

        self.traverseStampSquence(aTask,
                                  ((add, mailStamp), (remove, taskStamp)))

        self.traverseStampSquence(aTask,
                                  ((add, taskStamp), (remove, mailStamp)))
        # it's a Task again

        self.traverseStampSquence(aTask,
                                  ((add, eventStamp), (remove, taskStamp),
                                   (add, mailStamp), (remove, eventStamp),
                                   (add, taskStamp), (remove, mailStamp)))
        self.failUnless(has_stamp(aTask, taskStamp))

        # check stamping on an Event
        anEvent = Calendar.CalendarEvent("anEvent",
                                         itsParent=self.sandbox).itsItem
        self.setAttributes(anEvent)

        # round-robin its Kind back to event
        self.traverseStampSquence(anEvent,
                                  ((add, mailStamp), (remove, eventStamp),
                                   (add, taskStamp), (remove, mailStamp),
                                   (add, eventStamp), (remove, taskStamp)))
        self.failUnless(has_stamp(anEvent, eventStamp))

        # check stamping on a Mail Message
        aMessage = Mail.MailMessage("aMessage", itsParent=self.sandbox).itsItem
        self.setAttributes(aMessage)
        self.traverseStampSquence(aMessage,
                                  ((add, eventStamp), (add, taskStamp),
                                   (remove, eventStamp), (remove, taskStamp)))
        self.failUnless(has_stamp(aMessage, mailStamp))

        # now mixin some arbitrary Kind
        #anotherKind = view.findPath('//parcels/osaf/framework/blocks/Block')

        # stamp an event, mail, task with another kind
        #aNote.StampKind(add, anotherKind)
        #aTask.StampKind(add, anotherKind)
        #anEvent.StampKind(add, anotherKind)
        #aMessage.StampKind(add, anotherKind)

        #self.assertKinds(aNote, (noteKind, anotherKind))
        #self.assertKinds(aTask, (taskKind, anotherKind))
        #self.assertKinds(anEvent, (eventKind, anotherKind))
        #self.assertKinds(aMessage, (mailKind, anotherKind))

        # unstamp with another kind
        #aNote.StampKind(remove, anotherKind)
        #aTask.StampKind(remove, anotherKind)
        #anEvent.StampKind(remove, anotherKind)
        #aMessage.StampKind(remove, anotherKind)

        # see that they still have their attributes
        #self.assertKinds(aNote, (noteKind, ))
        #self.assertKinds(aTask, (taskKind, ))
        #self.assertKinds(anEvent, (eventKind, ))
        #self.assertKinds(aMessage, (mailKind, ))

        # Test some failure cases
        # These cases should produce suitable warning messages in Chandler.log
        if testFailureCases:
            anotherEvent = Calendar.CalendarEvent(
                "anotherEvent", itsParent=self.sandbox).itsItem
            self.setAttributes(anotherEvent)
            self.failUnless(has_stamp(anotherEvent, eventStamp))
            # Could use assertRaises here, but it's syntax with respect to parameters is
            #   not clear with my complex arguments, so try/except/else is more readable.
            try:
                # double stamping
                self.traverseStampSquence(anotherEvent,
                                          ((add, mailStamp), (add, mailStamp)))
            except StampAlreadyPresentError:
                pass
            else:
                self.failUnless(False,
                                "Double stamping should raise an exception!")

            try:
                # unstamping something not present
                self.traverseStampSquence(anotherEvent,
                                          ((remove, taskStamp), ))
            except StampNotPresentError:
                pass
            else:
                self.failUnless(
                    False,
                    "Unstamping a stamp not present should raise an exception!"
                )
            # Test for Bug:6151: Make sure items don't disappear
            # from the all collection if they're unstamped
            #
            # Make an email ...
            aMessage = Mail.MailMessage("aNewMessage", itsParent=self.sandbox)
            self.setAttributes(aMessage.itsItem)

            # Make sure it's in "Out"
            aMessage.fromMe = True
            outCollection = schema.ns("osaf.pim", view).outCollection

            self.failUnless(aMessage.itsItem in outCollection)

            # unstamp its emailness
            self.traverseStampSquence(aMessage.itsItem,
                                      (('add', taskStamp),
                                       ('remove', mailStamp)))

            allCollection = schema.ns("osaf.pim", view).allCollection
            self.failUnless(aMessage.itsItem in allCollection)
Esempio n. 17
0
 def testMessageWithEvent(self):
     statusCode, eventMessage = message.messageTextToKind(self.view,
                                    self.__getMultipartMessageText())
     self.assertTrue(has_stamp(eventMessage, MailStamp))
     self.assertTrue(has_stamp(eventMessage, EventStamp))
Esempio n. 18
0
 def _verifyTask(taskItem):
     self.failUnless(has_stamp(taskItem, TaskStamp))
     self.failUnlessEqual(taskItem.displayName, uw("test headline"))
     self.failUnlessEqual(taskItem.importance, 'important')