def _runEventEditor(self, args):
        eventEditor = EventEditor(args)
        editing = True
        editorMode = EDITOR_MODE.EDITOR_ASK

        while editing:
            if editorMode == EDITOR_MODE.EDITOR_EXIT:
                editing = False  # leave editor mode loop
            elif editorMode == EDITOR_MODE.EDITOR_ASK:
                editorMode = self._promptForEditorCommand()
            elif editorMode == EDITOR_MODE.EDITOR_LIST:
                eventEditor.printNumberedEventList()
                editorMode = EDITOR_MODE.EDITOR_ASK
            elif editorMode == EDITOR_MODE.EDITOR_MOVE:
                oldPosition = self._promptForNumber("Select index which will move: ")
                newPosition = self._promptForNumber("Select destination index: ")
                eventEditor._moveEvent(int(oldPosition), int(newPosition))
                editorMode = EDITOR_MODE.EDITOR_ASK
            elif editorMode == EDITOR_MODE.EDITOR_CHANGE_TIME:
                self._editorChangeTimeHelper(eventEditor)
                editorMode = EDITOR_MODE.EDITOR_ASK
            elif editorMode == EDITOR_MODE.EDITOR_CHANGE_EVENT:
                self._editorChangeEventHelper(eventEditor)
                editorMode = EDITOR_MODE.EDITOR_ASK
            elif editorMode == EDITOR_MODE.EDITOR_SAVE:
                self._editorSaveHelpers(eventEditor)
                editorMode = EDITOR_MODE.EDITOR_ASK
            else:
                return
 def test_moveEvent_Same_Location(self):
     ed = EventEditor("")
     ed.eventList = ["a","b","c"]
     ed._moveEvent(0,0)
     self.assertEqual(["a","b","c"],ed._eventList)
     ed.eventList = ["a","b","c"]
     ed._moveEvent(1,1)
     self.assertEqual(["a","b","c"],ed._eventList)
     ed.eventList = ["a","b","c"]
     ed._moveEvent(2,2)
     self.assertEqual(["a","b","c"],ed._eventList)
 def test_moveEvent(self):
     ed = EventEditor("")
     ed.eventList =["a","b","c"]
     ed._moveEvent(1,0)
     self.assertEqual(["b","a","c"],ed._eventList)
     ed.eventList = ["a","b","c"]
     ed._moveEvent(2,0)
     self.assertEqual(["c","a","b"],ed._eventList)
     ed.eventList = ["a","b","c"]
 def test_moveEvent_Bad_Location_Low(self):
     ed = EventEditor("")
     ed.eventList =["a","b","c"]
     ed._moveEvent(1,-5)
     self.assertEqual(["b","a","c"],ed.eventList)
 def test_changeEventY(self):
     ed = EventEditor("")
     newEvent = ed._changeEventY(2,{ "eventType" : "click" , "time" : 0, "x" : 200 , "y" : 300 })
     self.assertEqual({ "eventType" : "click" , "time" : 0, "x" : 200 , "y" : 2 },newEvent)
 def test_changEventY_None(self):
     with self.assertRaises(AssertionError) as cm:
         ed = EventEditor("")
         newEvent = ed._changeEventY(None,[0,200,300])
     self.assertEqual('newY is non-numeric, None',str(cm.exception))
 def test_changeEventX_Non_Numeric(self):
     with self.assertRaises(AssertionError) as cm:
         ed = EventEditor("")
         newEvent = ed._changeEventX("a",[0,200,300])
     self.assertEqual('newX is non-numeric, \'a\'',str(cm.exception))
 def test_set_eventList(self):
     ed = EventEditor("")
     ed.eventList = ["a"]
     self.assertEqual(["a"],ed.eventList)
 def test_set_readLocation(self):
     ed = EventEditor("")
     ed.readLocation = "test.txt"
     self.assertEqual("test.txt",ed.readLocation)
 def test_readEventList_Bad_Location(self):
     with self.assertRaises(IOError) as cm:
         ed = EventEditor("doesnt-exist.txt")
         ed._readEventList(ed.readLocation)
     self.assertEqual('[Errno 2] No such file or directory: \'doesnt-exist.txt\'',str(cm.exception))