Exemple #1
0
    def test_verschiebeEventsUmSimple2(self):
        EM.events = []
        TM.schlafenszeit = Zeit(23, 0)
        EM.mittagspause = Event(Zeit(0, 0), Zeit(0, 0))
        event1 = Event(Zeit(12, 0), Zeit(14, 00))
        event2 = Event(Zeit(14, 0), Zeit(16, 00))

        EM.addEvent(event1)
        EM.addEvent(event2)

        lsg1 = Event(Zeit(11, 0), Zeit(13, 00))
        lsg2 = Event(Zeit(13, 0), Zeit(15, 00))
        EM.verschiebeEventUm(event2, Zeit(-1, 0))
        self.assertEqual(str(event1), str(lsg1))
        self.assertEqual(str(event2), str(lsg2))
Exemple #2
0
    def test_verschiebeUmMittagspause(self):
        EM.events = []
        TM.schlafenszeit = Zeit(23, 0)
        EM.mittagspause = Event(Zeit(12, 0), Zeit(13, 0))

        event1 = Event(Zeit(10, 0), Zeit(12, 00))
        event2 = Event(Zeit(13, 0), Zeit(15, 00))

        EM.addEvent(event1)
        EM.addEvent(event2)
        lsg1 = Event(Zeit(13, 0), Zeit(15, 00))
        lsg2 = Event(Zeit(15, 0), Zeit(17, 00))
        EM.verschiebeEventUm(event1, Zeit(3, 0))

        self.assertEqual(str(event1), str(lsg1))
        self.assertEqual(str(event2), str(lsg2))
Exemple #3
0
    def test_addEvent(self):
        EM.events = []
        SM.init()
        event1 = Event(Zeit(14, 30), Zeit(15, 00))
        event2 = Event(Zeit(16, 30), Zeit(17, 00))
        event3 = Event(Zeit(14, 45), Zeit(17, 00))
        lsg1 = Event(Zeit(15, 0), Zeit(16, 30))

        EM.addEvent(event1)
        EM.addEvent(event2)
        # hinzufügen ohne Überlapp
        self.assertEqual(
            str(EM.events[0]),
            f"Start 14:30 Ende 15:00 am {EM.events[0].startzeit.erhalteDatum()}"
        )
        self.assertEqual(
            str(EM.events[1]),
            f"Start 16:30 Ende 17:00 am {EM.events[1].startzeit.erhalteDatum()}"
        )

        # mit überlapp
        EM.addEvent(event3)

        self.assertTrue(EM.hatEvent(lsg1))
        self.assertTrue(EM.hatEvent(event1))
        self.assertTrue(EM.hatEvent(event2))
Exemple #4
0
    def test_verbindung(self):
        EM.events = []
        event1 = Event(Zeit(14, 30), Zeit(15, 00))
        event2 = Event(Zeit(16, 30), Zeit(17, 00))
        event3 = Event(Zeit(14, 45), Zeit(17, 00))
        event4 = Event(Zeit(17, 00), Zeit(18, 00))
        event5 = Event(Zeit(11, 00), Zeit(14, 30))

        lsg1 = Event(Zeit(15, 0), Zeit(16, 30))

        EM.addEvent(event1)
        EM.addEvent(event2)
        EM.addEvent(event3)
        EM.addEvent(event4)
        EM.addEvent(event5)
        #for event in EM.events:
        #    print(f"{event}")

        self.assertEqual(event1.eventDanach, lsg1)
        self.assertEqual(event2.eventDavor, lsg1)
        self.assertEqual(event2.eventDanach, event4)
        self.assertEqual(event5.eventDanach, event1)
Exemple #5
0
    def test_addPause2(self):
        EM.events = []
        TM.schlafenszeit = Zeit(23, 0)
        EM.mittagspause = Event(Zeit(0, 0), Zeit(0, 0))

        event1 = Event(Zeit(11, 30), Zeit(15, 00))
        event2 = Event(Zeit(16, 30), Zeit(22, 00))

        EM.addEvent(event1)
        EM.addEvent(event2)

        lsg1 = Event(Zeit(11, 30), Zeit(13, 00))
        pause = Event(Zeit(13, 0), Zeit(15, 0))
        lsg2 = Event(Zeit(15, 0), Zeit(17, 00))
        lsg3 = Event(Zeit(17, 00), Zeit(22, 30))
        EM.addPause(Zeit(13, 00), Zeit(2, 0))

        self.assertEqual(str(event1), str(lsg1))
        self.assertEqual(str(EM.findeEvent(Zeit(13, 5))), str(pause))
        self.assertTrue(EM.findeEvent(Zeit(13, 5)).istPause)
        self.assertEqual(str(EM.findeEvent(Zeit(15, 20))), str(lsg2))
        self.assertEqual(str(event2), str(lsg3))
Exemple #6
0
    def test_verschiebeZeitNach(self):
        EM.events = []
        TM.schlafenszeit = Zeit(23, 0)
        EM.mittagspause = Event(Zeit(0, 0), Zeit(0, 0))
        event1 = Event(Zeit(11, 30), Zeit(15, 00))
        event2 = Event(Zeit(16, 30), Zeit(22, 00))

        lsg1 = Event(Zeit(11, 30), Zeit(16, 30))
        lsg2 = Event(Zeit(11, 30), Zeit(17, 00))
        lsg3 = Event(Zeit(17, 00), Zeit(22, 00))

        EM.addEvent(event1)
        EM.addEvent(event2)

        EM.verschiebeZeitNach(event1, False, Zeit(16, 30))
        self.assertEqual(str(event1.eventDanach), str(event2))
        self.assertEqual(str(event2.eventDavor), str(event1))
        self.assertEqual(str(event1), str(lsg1))

        EM.verschiebeZeitNach(event1, False, Zeit(17, 0))
        self.assertEqual(str(event1.eventDanach), str(event2))
        self.assertEqual(str(event2.eventDavor), str(event1))
        self.assertEqual(str(event1), str(lsg2))
        self.assertEqual(str(event2), str(lsg3))
Exemple #7
0
 def test_removeElement(self):
     EM.events = []
     event1 = Event(Zeit(11, 30), Zeit(15, 00))
     event2 = Event(Zeit(16, 30), Zeit(22, 00))
     event3 = Event(Zeit(14, 45), Zeit(17, 00))
     EM.addEvent(event1)
     EM.addEvent(event2)
     EM.addEvent(event3)
     EM.removeEvent(event1)
     self.assertIsNone(EM.findeEvent(Zeit(12, 0)))
     self.assertEqual(len(EM.events), 2)
Exemple #8
0
    def test_findeEvents(self):
        EM.events = []
        event1 = Event(Zeit(14, 30), Zeit(15, 00))
        event2 = Event(Zeit(16, 30), Zeit(17, 00))
        event3 = Event(Zeit(14, 45), Zeit(17, 00))

        EM.addEvent(event1)
        EM.addEvent(event2)
        EM.addEvent(event3)

        lsg = EM.findeEvents(Zeit(15, 0), Zeit(20, 0))

        self.assertTrue(event2 in lsg and event3 in lsg)
        self.assertFalse(event1 in lsg)
Exemple #9
0
    def test_findeEvent(self):
        EM.events = []
        event1 = Event(Zeit(14, 30), Zeit(15, 00))
        event2 = Event(Zeit(16, 30), Zeit(17, 00))
        event3 = Event(Zeit(14, 45), Zeit(17, 00))

        EM.addEvent(event1)
        EM.addEvent(event2)
        EM.addEvent(event3)

        lsg1 = EM.findeEvent(Zeit(14, 45))
        lsg2 = EM.findeEvent(Zeit(15, 00))
        lsg3 = EM.findeEvent(Zeit(16, 30))

        self.assertEqual(event1, lsg1)
        self.assertEqual(event3, lsg2)
        self.assertEqual(event2, lsg3)
    def select(zeit, exakt=False):
        from TimeManager import TimeManager
        from EventManager import EventManager
        from Event import Event
        from Zeit import Zeit

        if exakt:
            genauigkeit = Zeit(0, 0, None)
        else:
            genauigkeit = TimeManager.genauigkeit
        gefundeneZeit = TimeManager.findeZeit(zeit, genauigkeit)
        if gefundeneZeit is not None:
            gefundeneZeit.zeichneMarkiert()
            ScreenManager.ausgewaehlt = gefundeneZeit
            ScreenManager.ausgewaehlt.fokusiere()
            return
        event = EventManager.findeEvent(zeit, genauigkeit)
        if event is None:
            zeit = zeit.runde()
            # ändere das Datum des neuen Events auf das Datum von akutellesDatum im TimeManager
            #zeit.datum = TimeManager.aktuellesDatum.datum
            if TimeManager.aufstehzeit <= zeit < TimeManager.schlafenszeit:
                neuesEvent = EventManager.addEvent(
                    Event(zeit, zeit + EventManager.eventLaenge))
                ScreenManager.ausgewaehlt = neuesEvent
            else:
                return
        else:
            if zeit.circa(event.startzeit, genauigkeit):
                ScreenManager.ausgewaehlt = event.startzeit
            elif zeit.circa(event.endzeit, genauigkeit):
                ScreenManager.ausgewaehlt = event.endzeit
            else:
                ScreenManager.ausgewaehlt = event
        ScreenManager.ausgewaehlt.zeichneMarkiert()
        ScreenManager.ausgewaehlt.fokusiere()
Exemple #11
0
    def test_verschiebeEventUm(self):
        EM.events = []
        TM.schlafenszeit = Zeit(23, 0)
        EM.mittagspause = Event(Zeit(0, 0), Zeit(0, 0))
        event1 = Event(Zeit(11, 30), Zeit(15, 00))
        event2 = Event(Zeit(16, 30), Zeit(22, 00))
        event3 = Event(Zeit(15, 00), Zeit(16, 30))

        lsg1 = Event(Zeit(17, 30), Zeit(23, 00))
        lsg2 = Event(Zeit(18, 30), Zeit(23, 00))

        lsg3 = Event(Zeit(12, 30), Zeit(16, 00))  #event1 3. Verschiebung
        lsg4 = Event(Zeit(16, 0), Zeit(17, 30))  #event3 3.V
        lsg5 = Event(Zeit(18, 30), Zeit(23, 00))  #event2 3.V
        EM.addEvent(event1)
        EM.addEvent(event2)
        EM.addEvent(event3)
        EM.verschiebeEventUm(event2, Zeit(1, 0))
        self.assertEqual(str(EM.findeEvent(Zeit(18, 00))), str(lsg1))
        self.assertEqual(lsg1, event2)

        EM.verschiebeEventUm(event2,
                             Zeit(1,
                                  0))  #verschiebe in die Schlafenszeit hinein
        self.assertEqual(str(EM.findeEvent(Zeit(19, 00))), str(lsg2))
        self.assertEqual(lsg2, event2)

        EM.verschiebeEventUm(event1,
                             Zeit(1, 0))  #verschiebe mit anhängenden Events

        self.assertEqual(str(EM.findeEvent(Zeit(13, 0))),
                         str(lsg3))  #event1 verschoben
        self.assertEqual(str(event1), str(lsg3))

        self.assertEqual(str(EM.findeEvent(Zeit(17, 0))),
                         str(lsg4))  # event3 verschoben
        self.assertEqual(str(event3), str(lsg4))

        self.assertEqual(str(EM.findeEvent(Zeit(20, 0))),
                         str(lsg5))  # event2 verschoben
        self.assertEqual(event2, lsg5)
    def keyInput(keyEvent):
        from Zeit import Zeit
        from TimeManager import TimeManager
        from EventManager import EventManager
        from Event import Event

        if keyEvent.keysym == "Return":
            #Parse different input
            zeit = Zeit.fromString(ScreenManager.inputText)
            zeit1, zeit2 = Zeit.intervalFromString(ScreenManager.inputText)
            datum = Zeit.dateFromString(ScreenManager.inputText)
            #reset the input Text
            ScreenManager.inputText = ""
            if zeit is not None:
                zeit.datum = TimeManager.aktuellesDatum.datum
                ScreenManager.select(zeit, True)
            elif zeit1 is not None and zeit2 is not None:
                zeit1.datum = zeit2.datum = TimeManager.aktuellesDatum.datum
                if (TimeManager.aufstehzeit <= zeit1 <
                        TimeManager.mittagspauseStart
                        and zeit1 < zeit2 <= TimeManager.mittagspauseStart
                    ) or (TimeManager.mittagspauseEnde <= zeit1 <
                          TimeManager.schlafenszeit
                          and zeit1 < zeit2 <= TimeManager.schlafenszeit):
                    neuesEvent = EventManager.addEvent(Event(zeit1, zeit2))
                    ScreenManager.ausgewaehlt = neuesEvent
                    ScreenManager.ausgewaehlt.zeichneMarkiert()
                    ScreenManager.ausgewaehlt.fokusiere()
                else:
                    ScreenManager.inputText = "Invalid Input for Interval"
            elif datum is not None:
                # speichere
                EventManager.speichereEvents()
                TimeManager.speichereZeiten()
                #verschiebe
                TimeManager.aktuellesDatum.datum = datum.datum
                # lösche die Zeiten und Events von vorherigen Tag vom Canvas
                for event in EventManager.events:
                    event.verstecke()
                for zeit in TimeManager.zeiten:
                    zeit.entferne()
                EventManager.mittagspause.verstecke()

                # Lade und zeichne neu
                TimeManager.ladeZeiten()
                EventManager.ladeEvents()
                ScreenManager.zeichneHintergrund()
                ScreenManager.canvas.itemconfig(
                    ScreenManager.datumAnzeige,
                    text=TimeManager.aktuellesDatum.erhalteDatumLang())
                ScreenManager.canvas.itemconfig(
                    ScreenManager.jahrAnzeige,
                    text=TimeManager.aktuellesDatum.erhalteDatumJahr())

        elif keyEvent.keysym == "BackSpace":
            ScreenManager.inputText = ScreenManager.inputText[:-1]
        elif keyEvent.keysym == "Delete":
            pass
        elif keyEvent.keysym == "Right":
            #speichere
            EventManager.speichereEvents()
            TimeManager.speichereZeiten()
            TimeManager.aktuellesDatum.verschiebeAufMorgen()
            # lösche die Zeiten und Events von vorherigen Tag vom Canvas
            for event in EventManager.events:
                event.verstecke()
            for zeit in TimeManager.zeiten:
                zeit.entferne()
            EventManager.mittagspause.verstecke()

            #Lade und zeichne neu
            TimeManager.ladeZeiten()
            ScreenManager.zeichneHintergrund()
            EventManager.ladeEvents()
            ScreenManager.canvas.itemconfig(
                ScreenManager.datumAnzeige,
                text=TimeManager.aktuellesDatum.erhalteDatumLang())
            ScreenManager.canvas.itemconfig(
                ScreenManager.jahrAnzeige,
                text=TimeManager.aktuellesDatum.erhalteDatumJahr())
        elif keyEvent.keysym == "Left":
            #speichere
            EventManager.speichereEvents()
            TimeManager.speichereZeiten()
            TimeManager.aktuellesDatum.verschiebeAufGestern()
            #lösche die Zeiten und Events von vorherigen Tag vom Canvas
            for event in EventManager.events:
                event.verstecke()
            for zeit in TimeManager.zeiten:
                zeit.entferne()
            EventManager.mittagspause.verstecke()

            #lade und zeichne neu
            TimeManager.ladeZeiten()
            ScreenManager.zeichneHintergrund()
            EventManager.ladeEvents()
            ScreenManager.canvas.itemconfig(
                ScreenManager.datumAnzeige,
                text=TimeManager.aktuellesDatum.erhalteDatumLang())
            ScreenManager.canvas.itemconfig(
                ScreenManager.jahrAnzeige,
                text=TimeManager.aktuellesDatum.erhalteDatumJahr())
        else:
            ScreenManager.inputText += keyEvent.char
        ScreenManager.canvas.itemconfig(
            ScreenManager.inputAnzeige,
            text=f"Input: {ScreenManager.inputText}")
Exemple #13
0
    def test_trenneEvent(self):
        EM.events = []

        event1 = Event(Zeit(11, 30), Zeit(15, 00))
        event2 = Event(Zeit(16, 30), Zeit(22, 00))
        event3 = Event(Zeit(14, 45), Zeit(17, 00))

        lsg1 = Event(Zeit(11, 30), Zeit(14, 30))
        lsg2 = Event(Zeit(14, 30), Zeit(15, 0))
        lsg3 = Event(Zeit(14, 45), Zeit(15, 00))
        EM.addEvent(event1)
        EM.addEvent(event2)
        EM.addEvent(event3)

        EM.trenneEvent(event1, Zeit(14, 30))
        self.assertEqual(str(EM.findeEvent(Zeit(12, 0))), str(lsg1))
        self.assertEqual(str(EM.findeEvent(Zeit(14, 30))), str(lsg2))
        EM.trenneEvent(EM.findeEvent(Zeit(14, 55)),
                       Zeit(14, 45))  #trenne ein getrenntes Event
        self.assertEqual(str(EM.findeEvent(Zeit(14, 55))), str(lsg3))

        EM.events = []
        event1 = Event(Zeit(11, 30), Zeit(15, 00))
        event2 = Event(Zeit(16, 30), Zeit(22, 00))
        event3 = Event(Zeit(14, 45), Zeit(17, 00))
        EM.addEvent(event1)
        EM.addEvent(event2)
        EM.addEvent(event3)

        EM.trenneEvent(event3, Zeit(
            17, 0))  # event3 endet bei 16:30, dh trennung bei 17 tut nichts
        self.assertEqual(str(EM.findeEvent(Zeit(16, 55))), str(event2))