Beispiel #1
0
    def test_compare_events(self):
        smaller = Event(name="Some Event", start_time=self.before)
        bigger = Event(name="Some Event", start_time=self.after)
        equal = Event(name="Some Event", start_time=self.before)

        if not smaller < bigger:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: <")

        if not bigger > smaller:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: >")

        if not smaller == equal:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: ==")

        if not smaller <= bigger:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: <=")

        if not bigger >= smaller:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: >=")

        if not smaller != bigger:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: !=")
Beispiel #2
0
 def test_alarm(self):  # pragma: no cover
     event = Event(
         name="Some Event", reminder=timedelta(hours=0),
         start_time=datetime.now() + timedelta(seconds=2),
         duration=timedelta(seconds=30))
     self.schedule_alarm(event)
     self.sched.add_date_job(
         self.play_alarms, event.get_alarm_time() + timedelta(seconds=1))
Beispiel #3
0
 def test_alarm(self):  # pragma: no cover
     event = Event(name="Some Event",
                   reminder=timedelta(hours=0),
                   start_time=datetime.now() + timedelta(seconds=2),
                   duration=timedelta(seconds=30))
     self.schedule_alarm(event)
     self.sched.add_date_job(self.play_alarms,
                             event.get_alarm_time() + timedelta(seconds=1))
Beispiel #4
0
 def setUp(self):
     self.starttime = datetime(year=2013, month=3, day=5)
     self.before = datetime(year=2013, month=3, day=4)
     self.after = datetime(year=2013, month=3, day=6)
     self.event_without_reminder = Event(name="Some Event",
                                         start_time=self.starttime)
     self.event_with_reminder = Event(name="Some Event",
                                      start_time=self.starttime,
                                      reminder=timedelta(minutes=45))
Beispiel #5
0
 def collect(self):
     for alarm in self.settings['alarms']:
         if alarm['enabled'] and date.today().weekday() in alarm['weekdays']:  # pylint: disable=line-too-long
             start_time = datetime.combine(
                 date.today(), time(alarm['time'][0], alarm['time'][1]))
             yield Event(name="Daily Alarm",
                         start_time=start_time,
                         reminder=timedelta(seconds=0))
Beispiel #6
0
 def setUp(self):
     self.starttime = datetime(year=2013, month=3, day=5)
     self.before = datetime(year=2013, month=3, day=4)
     self.after = datetime(year=2013, month=3, day=6)
     self.event_without_reminder = Event(
         name="Some Event", start_time=self.starttime)
     self.event_with_reminder = Event(
         name="Some Event", start_time=self.starttime,
         reminder=timedelta(minutes=45))
Beispiel #7
0
    def test_collect(self):
        start_time = datetime.combine(date.today(), time(8, 0))
        events = list(self.plugin.collect())

        self.assertTrue(events, "collect should return an event.")

        self.assertEquals(
            events[0], Event(name="Daily Alarm", start_time=start_time),
            "Should return an event with name Daily Alarm and start_time 8:00")
Beispiel #8
0
class TestEvent(TestCase):

    def setUp(self):
        self.starttime = datetime(year=2013, month=3, day=5)
        self.before = datetime(year=2013, month=3, day=4)
        self.after = datetime(year=2013, month=3, day=6)
        self.event_without_reminder = Event(
            name="Some Event", start_time=self.starttime)
        self.event_with_reminder = Event(
            name="Some Event", start_time=self.starttime,
            reminder=timedelta(minutes=45))

    def test_to_string(self):
        val = self.event_without_reminder.__str__()
        if not isinstance(val, str):
            self.fail("Not a String.")  # pragma: no cover
        if not str(self.event_without_reminder):
            self.fail("String is empty.")  # pragma: no cover

    def test_compare_events(self):
        smaller = Event(name="Some Event", start_time=self.before)
        bigger = Event(name="Some Event", start_time=self.after)
        equal = Event(name="Some Event", start_time=self.before)

        if not smaller < bigger:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: <")

        if not bigger > smaller:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: >")

        if not smaller == equal:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: ==")

        if not smaller <= bigger:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: <=")

        if not bigger >= smaller:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: >=")

        if not smaller != bigger:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: !=")
Beispiel #9
0
 def test_get_text_backlight(self):
     notification = self.plugin.get_text()
     self.assertIs(notification, None,
                   "get_text must return None if alarm isn't on.")
     backlight = self.plugin.backlight()
     self.assertIs(backlight, None,
                   "backlight must return None if alarm isn't on.")
     self.plugin.begin(Event(name="Some Event", start_time=datetime.now()))
     self.plugin.play()
     notification = self.plugin.get_text()
     self.assertIsInstance(
         notification, str,
         "get_text must return a string when alarm is on.")
     backlight = self.plugin.backlight()
     backlight2 = self.plugin.backlight()
     self.assertIsNot(backlight, backlight2,
                      "backlight should toggle when alarm is on.")
Beispiel #10
0
class TestEvent(TestCase):
    def setUp(self):
        self.starttime = datetime(year=2013, month=3, day=5)
        self.before = datetime(year=2013, month=3, day=4)
        self.after = datetime(year=2013, month=3, day=6)
        self.event_without_reminder = Event(name="Some Event",
                                            start_time=self.starttime)
        self.event_with_reminder = Event(name="Some Event",
                                         start_time=self.starttime,
                                         reminder=timedelta(minutes=45))

    def test_to_string(self):
        val = self.event_without_reminder.__str__()
        if not isinstance(val, str):
            self.fail("Not a String.")  # pragma: no cover
        if not str(self.event_without_reminder):
            self.fail("String is empty.")  # pragma: no cover

    def test_compare_events(self):
        smaller = Event(name="Some Event", start_time=self.before)
        bigger = Event(name="Some Event", start_time=self.after)
        equal = Event(name="Some Event", start_time=self.before)

        if not smaller < bigger:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: <")

        if not bigger > smaller:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: >")

        if not smaller == equal:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: ==")

        if not smaller <= bigger:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: <=")

        if not bigger >= smaller:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: >=")

        if not smaller != bigger:
            self.fail(  # pragma: no cover
                "Events don't compare properly. Operator: !=")
Beispiel #11
0
    def feed_to_events(self, feed):
        for event in feed.entry:
            for when in event.when:
                try:
                    start_time = datetime.strptime(
                        when.start_time.split(".")[0], "%Y-%m-%dT%H:%M:%S")
                    end_time = datetime.strptime(
                        when.end_time.split(".")[0], "%Y-%m-%dT%H:%M:%S")
                except ValueError:  # pragma: no cover
                    # ValueError happens on parsing error. Parsing errors
                    # usually happen for "all day" events since they have
                    # not time, but we do not care about this events.
                    continue

                event_dict = {
                    'name': event.title.text,
                    'start_time': start_time,
                    'duration': end_time - start_time
                }

                reminders = []

                for reminder in when.reminder:
                    if reminder.method == "alert":
                        reminders.append(
                            timedelta(minutes=int(reminder.minutes)))

                if reminders:
                    reminders.sort()
                    event_dict['reminder'] = reminders[-1]

                for where in event.where:
                    if not where.value_string is None:
                        event_dict['location'] = where.value_string

                yield Event(**event_dict)
Beispiel #12
0
from unittest import TestCase
from mock import MagicMock

from datetime import datetime, timedelta

from smartclock.plugins.alarmmanager import AlarmManager
from smartclock.hardware.bedsensor import Bedsensor
from smartclock.plugins.pluginlib import Event

mockevent = Event(name="Mock Event",
                  start_time=datetime.now(),
                  reminder=timedelta(hours=0))


class MockEventCollector(object):
    def collect(self):
        yield mockevent


class MockEventProcessor(object):
    def process(self, event):
        event.mock = True
        return event


class AlarmManagerTestCase(TestCase):
    def setUp(self):
        self.alarm_manager = AlarmManager(
            self.mock_get_plugins, MagicMock(return_value=Bedsensor.PRESSED))
        self.alarm = MagicMock()
        self.alarm.begin = MagicMock(name="begin")
Beispiel #13
0
 def setUp(self):
     self.plugin = IAlarmPlugin()
     self.plugin._play = MagicMock()
     self.plugin._pause = MagicMock()
     self.plugin._interval = MagicMock()
     self.event = Event(name="Some Event", start_time=datetime.now())