Exemplo n.º 1
0
    def test_entry(self, mock_time):
        """ Adds an entry to the database and deletes it. """
        hour = 13
        minute = 35
        mock_timestamp = 12341234
        mock_time.return_value = mock_timestamp
        adh = AlarmDb(self.db_name)

        # Test an entry with the minimum amount of arguments and check for
        # default values
        test_alarm = AlarmItem(hour, minute)
        test_alarm.id_ = adh.add_alarm(test_alarm)
        # Test that the alarm object inserted has its member variable edited
        # with the new timestamp
        self.assertEqual(mock_timestamp, test_alarm.timestamp)
        # Check variables with a new alarm with data retrieved directly from db
        retrieved_alarm = adh.get_alarm(test_alarm.id_)
        self.assertEqual(hour, retrieved_alarm.hour)
        self.assertEqual(minute, retrieved_alarm.minute)
        self.assertEqual(test_alarm.monday, retrieved_alarm.monday)
        self.assertEqual(test_alarm.tuesday, retrieved_alarm.tuesday)
        self.assertEqual(test_alarm.wednesday, retrieved_alarm.wednesday)
        self.assertEqual(test_alarm.thursday, retrieved_alarm.thursday)
        self.assertEqual(test_alarm.friday, retrieved_alarm.friday)
        self.assertEqual(test_alarm.saturday, retrieved_alarm.saturday)
        self.assertEqual(test_alarm.sunday, retrieved_alarm.sunday)
        self.assertEqual(test_alarm.enabled, retrieved_alarm.enabled)
        self.assertEqual(test_alarm.label, retrieved_alarm.label)
        self.assertEqual(mock_timestamp, retrieved_alarm.timestamp)

        # Test with all possible arguments
        days = (False, False, True, False, False, True, False)
        enabled = False
        label = 'Test alarm label'
        timestamp = 98765432
        test_alarm = AlarmItem(hour,
                               minute,
                               days=days,
                               enabled=enabled,
                               label=label,
                               timestamp=timestamp)
        test_alarm.id_ = adh.add_alarm(test_alarm)
        # Check that the timestamp value from the alarm instance was not
        # modified with the present (in this case the mocked) timestamp
        self.assertEqual(timestamp, test_alarm.timestamp)
        # Check variables with a new alarm with data retrieved directly from db
        retrieved_alarm = adh.get_alarm(test_alarm.id_)
        self.assertEqual(hour, retrieved_alarm.hour)
        self.assertEqual(minute, retrieved_alarm.minute)
        self.assertEqual(days[0], retrieved_alarm.monday)
        self.assertEqual(days[1], retrieved_alarm.tuesday)
        self.assertEqual(days[2], retrieved_alarm.wednesday)
        self.assertEqual(days[3], retrieved_alarm.thursday)
        self.assertEqual(days[4], retrieved_alarm.friday)
        self.assertEqual(days[5], retrieved_alarm.saturday)
        self.assertEqual(days[6], retrieved_alarm.sunday)
        self.assertEqual(enabled, retrieved_alarm.enabled)
        self.assertEqual(label, retrieved_alarm.label)
        self.assertEqual(timestamp, retrieved_alarm.timestamp)
Exemplo n.º 2
0
    def test_edit_alarm_single(self):
        """
        Adds an alarm, edits a single value and checks all the others remain the
        same.
        """
        adh = AlarmDb(self.db_name)
        alarm_test = AlarmItem(13,
                               35,
                               enabled=True,
                               label='yes',
                               days=(True, False, True, False, True, False,
                                     True))

        # Check the timestamp changes on add_alarm
        original_timestamp = alarm_test.timestamp
        alarm_test.id_ = adh.add_alarm(alarm_test)
        self.assertNotEqual(alarm_test.timestamp, original_timestamp)

        # Edit alarm, check new data and different timestamp
        original_timestamp = alarm_test.timestamp
        time.sleep(1)
        edit_success = adh.edit_alarm(alarm_test.id_, minute=0)
        self.assertTrue(edit_success)
        edited_alarm = adh.get_alarm(alarm_test.id_)
        self.assertGreater(edited_alarm.timestamp, original_timestamp)
        self.assertEqual(edited_alarm.hour, 13)
        self.assertEqual(edited_alarm.minute, 0)
        self.assertTrue(edited_alarm.monday)
        self.assertFalse(edited_alarm.tuesday)
        self.assertTrue(edited_alarm.wednesday)
        self.assertFalse(edited_alarm.thursday)
        self.assertTrue(edited_alarm.friday)
        self.assertFalse(edited_alarm.saturday)
        self.assertTrue(edited_alarm.sunday)
        self.assertTrue(edited_alarm.enabled)
        self.assertEqual(edited_alarm.label, 'yes')

        # Test with opposite initial values
        alarm_test = AlarmItem(10,
                               20,
                               enabled=False,
                               label='no',
                               days=(False, True, False, True, False, True,
                                     False))
        alarm_test.id_ = adh.add_alarm(alarm_test)
        edit_success = adh.edit_alarm(alarm_test.id_, hour=0)
        self.assertTrue(edit_success)
        edited_alarm = adh.get_alarm(alarm_test.id_)
        self.assertEqual(edited_alarm.hour, 0)
        self.assertEqual(edited_alarm.minute, 20)
        self.assertFalse(edited_alarm.monday)
        self.assertTrue(edited_alarm.tuesday)
        self.assertFalse(edited_alarm.wednesday)
        self.assertTrue(edited_alarm.thursday)
        self.assertFalse(edited_alarm.friday)
        self.assertTrue(edited_alarm.saturday)
        self.assertFalse(edited_alarm.sunday)
        self.assertFalse(edited_alarm.enabled)
        self.assertEqual(edited_alarm.label, 'no')
Exemplo n.º 3
0
    def test_entry(self, mock_time):
        """ Adds an entry to the database and deletes it. """
        hour = 13
        minute = 35
        mock_timestamp = 12341234
        mock_time.return_value = mock_timestamp
        adh = AlarmDb(self.db_name)

        # Test an entry with the minimum amount of arguments and check for
        # default values
        test_alarm = AlarmItem(hour, minute)
        test_alarm.id_ = adh.add_alarm(test_alarm)
        # Test that the alarm object inserted has its member variable edited
        # with the new timestamp
        self.assertEqual(mock_timestamp, test_alarm.timestamp)
        # Check variables with a new alarm with data retrieved directly from db
        retrieved_alarm = adh.get_alarm(test_alarm.id_)
        self.assertEqual(hour, retrieved_alarm.hour)
        self.assertEqual(minute, retrieved_alarm.minute)
        self.assertEqual(test_alarm.monday, retrieved_alarm.monday)
        self.assertEqual(test_alarm.tuesday, retrieved_alarm.tuesday)
        self.assertEqual(test_alarm.wednesday, retrieved_alarm.wednesday)
        self.assertEqual(test_alarm.thursday, retrieved_alarm.thursday)
        self.assertEqual(test_alarm.friday, retrieved_alarm.friday)
        self.assertEqual(test_alarm.saturday, retrieved_alarm.saturday)
        self.assertEqual(test_alarm.sunday, retrieved_alarm.sunday)
        self.assertEqual(test_alarm.enabled, retrieved_alarm.enabled)
        self.assertEqual(test_alarm.label, retrieved_alarm.label)
        self.assertEqual(mock_timestamp, retrieved_alarm.timestamp)

        # Test with all possible arguments
        days = (False, False, True, False, False, True, False)
        enabled = False
        label = 'Test alarm label'
        timestamp = 98765432
        test_alarm = AlarmItem(
            hour, minute, days=days, enabled=enabled, label=label,
            timestamp=timestamp)
        test_alarm.id_ = adh.add_alarm(test_alarm)
        # Check that the timestamp value from the alarm instance was not
        # modified with the present (in this case the mocked) timestamp
        self.assertEqual(timestamp, test_alarm.timestamp)
        # Check variables with a new alarm with data retrieved directly from db
        retrieved_alarm = adh.get_alarm(test_alarm.id_)
        self.assertEqual(hour, retrieved_alarm.hour)
        self.assertEqual(minute, retrieved_alarm.minute)
        self.assertEqual(days[0], retrieved_alarm.monday)
        self.assertEqual(days[1], retrieved_alarm.tuesday)
        self.assertEqual(days[2], retrieved_alarm.wednesday)
        self.assertEqual(days[3], retrieved_alarm.thursday)
        self.assertEqual(days[4], retrieved_alarm.friday)
        self.assertEqual(days[5], retrieved_alarm.saturday)
        self.assertEqual(days[6], retrieved_alarm.sunday)
        self.assertEqual(enabled, retrieved_alarm.enabled)
        self.assertEqual(label, retrieved_alarm.label)
        self.assertEqual(timestamp, retrieved_alarm.timestamp)
Exemplo n.º 4
0
    def test_edit_alarm_single(self):
        """
        Adds an alarm, edits a single value and checks all the others remain the
        same.
        """
        adh = AlarmDb(self.db_name)
        alarm_test = AlarmItem(
            13, 35, enabled=True, label='yes',
            days=(True, False, True, False, True, False, True))

        # Check the timestamp changes on add_alarm
        original_timestamp = alarm_test.timestamp
        alarm_test.id_ = adh.add_alarm(alarm_test)
        self.assertNotEqual(alarm_test.timestamp, original_timestamp)

        # Edit alarm, check new data and different timestamp
        original_timestamp = alarm_test.timestamp
        time.sleep(1)
        edit_success = adh.edit_alarm(alarm_test.id_, minute=0)
        self.assertTrue(edit_success)
        edited_alarm = adh.get_alarm(alarm_test.id_)
        self.assertGreater(edited_alarm.timestamp, original_timestamp)
        self.assertEqual(edited_alarm.hour, 13)
        self.assertEqual(edited_alarm.minute, 0)
        self.assertTrue(edited_alarm.monday)
        self.assertFalse(edited_alarm.tuesday)
        self.assertTrue(edited_alarm.wednesday)
        self.assertFalse(edited_alarm.thursday)
        self.assertTrue(edited_alarm.friday)
        self.assertFalse(edited_alarm.saturday)
        self.assertTrue(edited_alarm.sunday)
        self.assertTrue(edited_alarm.enabled)
        self.assertEqual(edited_alarm.label, 'yes')

        # Test with opposite initial values
        alarm_test = AlarmItem(
            10, 20, enabled=False, label='no',
            days=(False, True, False, True, False, True, False))
        alarm_test.id_ = adh.add_alarm(alarm_test)
        edit_success = adh.edit_alarm(alarm_test.id_, hour=0)
        self.assertTrue(edit_success)
        edited_alarm = adh.get_alarm(alarm_test.id_)
        self.assertEqual(edited_alarm.hour, 0)
        self.assertEqual(edited_alarm.minute, 20)
        self.assertFalse(edited_alarm.monday)
        self.assertTrue(edited_alarm.tuesday)
        self.assertFalse(edited_alarm.wednesday)
        self.assertTrue(edited_alarm.thursday)
        self.assertFalse(edited_alarm.friday)
        self.assertTrue(edited_alarm.saturday)
        self.assertFalse(edited_alarm.sunday)
        self.assertFalse(edited_alarm.enabled)
        self.assertEqual(edited_alarm.label, 'no')
Exemplo n.º 5
0
    def test_edit_alarm(self):
        """ Creates an alarm and edits it. """
        adh = AlarmDb(self.db_name)
        adh.delete_all_alarms()
        alarm_test = AlarmItem(
            13, 35, days=(False, False, False, False, False, False, False),
            enabled=True, label='')

        # Check the timestamp changes on add_alarm
        original_timestamp = alarm_test.timestamp
        alarm_test.id_ = adh.add_alarm(alarm_test)
        self.assertNotEqual(alarm_test.timestamp, original_timestamp)

        # Edit alarm, check new data and different timestamp
        original_timestamp = alarm_test.timestamp
        time.sleep(1)
        edit_success = adh.edit_alarm(
            alarm_test.id_, 11, 22, enabled=False, label='New label',
            days=(True, True, True, True, True, True, True))
        self.assertEqual(edit_success, True)
        edited_alarm = adh.get_alarm(alarm_test.id_)
        self.assertGreater(edited_alarm.timestamp, original_timestamp)
        self.assertEqual(edited_alarm.hour, 11)
        self.assertEqual(edited_alarm.minute, 22)
        self.assertTrue(edited_alarm.monday)
        self.assertTrue(edited_alarm.tuesday)
        self.assertTrue(edited_alarm.wednesday)
        self.assertTrue(edited_alarm.thursday)
        self.assertTrue(edited_alarm.friday)
        self.assertTrue(edited_alarm.saturday)
        self.assertTrue(edited_alarm.sunday)
        self.assertFalse(edited_alarm.enabled)
        self.assertEqual(edited_alarm.label, 'New label')
Exemplo n.º 6
0
 def test_get_all_enable_alarms(self):
     """
     Adds 5 alarms into the database, 3 enabled and 2 disabled. Checks the
     enabled and disabled getters are working.
     """
     adh = AlarmDb(self.db_name)
     adh.delete_all_alarms()
     adh.add_alarm(AlarmItem(13, 35, days=self.random_days,
                             enabled=True))  # id 1
     adh.add_alarm(AlarmItem(14, 36, days=self.random_days,
                             enabled=False))  # id 2
     adh.add_alarm(AlarmItem(15, 37, days=self.random_days,
                             enabled=True))  # id 3
     adh.add_alarm(AlarmItem(16, 38, days=self.random_days,
                             enabled=False))  # id 4
     adh.add_alarm(AlarmItem(17, 39, days=self.random_days,
                             enabled=True))  # id 5
     enabled_alarms = adh.get_all_enabled_alarms()
     disabled_alarms = adh.get_all_disabled_alarms()
     self.assertEqual(len(enabled_alarms), 3)
     self.assertEqual(len(disabled_alarms), 2)
Exemplo n.º 7
0
 def test_get_all_enable_alarms(self):
     """
     Adds 5 alarms into the database, 3 enabled and 2 disabled. Checks the
     enabled and disabled getters are working.
     """
     adh = AlarmDb(self.db_name)
     adh.delete_all_alarms()
     adh.add_alarm(
         AlarmItem(13, 35, days=self.random_days, enabled=True))   # id 1
     adh.add_alarm(
         AlarmItem(14, 36, days=self.random_days, enabled=False))  # id 2
     adh.add_alarm(
         AlarmItem(15, 37, days=self.random_days, enabled=True))   # id 3
     adh.add_alarm(
         AlarmItem(16, 38, days=self.random_days, enabled=False))  # id 4
     adh.add_alarm(
         AlarmItem(17, 39, days=self.random_days, enabled=True))   # id 5
     enabled_alarms = adh.get_all_enabled_alarms()
     disabled_alarms = adh.get_all_disabled_alarms()
     self.assertEqual(len(enabled_alarms), 3)
     self.assertEqual(len(disabled_alarms), 2)
Exemplo n.º 8
0
    def test_update_alarm(self):
        """ Creates an alarm and update it. """
        adh = AlarmDb(self.db_name)
        adh.delete_all_alarms()
        alarm_test = AlarmItem(13,
                               35,
                               days=(False, False, False, False, False, False,
                                     False),
                               enabled=True,
                               label='')
        original_timestamp = alarm_test.timestamp

        # Add the alarm to the database and check the timestamp has been set
        alarm_test.id_ = adh.add_alarm(alarm_test)
        self.assertNotEqual(alarm_test.timestamp, original_timestamp)
        original_timestamp = alarm_test.timestamp

        # Create a new AlarmItem with the same id and timestamp to update the db
        alarm_updated = AlarmItem(21,
                                  12,
                                  days=(True, True, True, True, True, True,
                                        True),
                                  enabled=False,
                                  label='new label',
                                  alarm_id=alarm_test.id_,
                                  timestamp=original_timestamp)
        time.sleep(1)
        update_success = adh.update_alarm(alarm_updated)
        self.assertEqual(update_success, True)
        self.assertNotEqual(alarm_updated.timestamp, original_timestamp)

        # Check the new data has replaced the old,
        retrieved_alarm = adh.get_alarm(alarm_test.id_)
        self.assertEqual(retrieved_alarm.hour, 21)
        self.assertEqual(retrieved_alarm.minute, 12)
        self.assertTrue(retrieved_alarm.monday)
        self.assertTrue(retrieved_alarm.tuesday)
        self.assertTrue(retrieved_alarm.wednesday)
        self.assertTrue(retrieved_alarm.thursday)
        self.assertTrue(retrieved_alarm.friday)
        self.assertTrue(retrieved_alarm.saturday)
        self.assertTrue(retrieved_alarm.sunday)
        self.assertFalse(retrieved_alarm.enabled)
        self.assertEqual(retrieved_alarm.label, 'new label')
        self.assertEqual(retrieved_alarm.timestamp, alarm_updated.timestamp)
        self.assertGreater(retrieved_alarm.timestamp, original_timestamp)
Exemplo n.º 9
0
    def test_edit_alarm(self):
        """ Creates an alarm and edits it. """
        adh = AlarmDb(self.db_name)
        adh.delete_all_alarms()
        alarm_test = AlarmItem(13,
                               35,
                               days=(False, False, False, False, False, False,
                                     False),
                               enabled=True,
                               label='')

        # Check the timestamp changes on add_alarm
        original_timestamp = alarm_test.timestamp
        alarm_test.id_ = adh.add_alarm(alarm_test)
        self.assertNotEqual(alarm_test.timestamp, original_timestamp)

        # Edit alarm, check new data and different timestamp
        original_timestamp = alarm_test.timestamp
        time.sleep(1)
        edit_success = adh.edit_alarm(alarm_test.id_,
                                      11,
                                      22,
                                      enabled=False,
                                      label='New label',
                                      days=(True, True, True, True, True, True,
                                            True))
        self.assertEqual(edit_success, True)
        edited_alarm = adh.get_alarm(alarm_test.id_)
        self.assertGreater(edited_alarm.timestamp, original_timestamp)
        self.assertEqual(edited_alarm.hour, 11)
        self.assertEqual(edited_alarm.minute, 22)
        self.assertTrue(edited_alarm.monday)
        self.assertTrue(edited_alarm.tuesday)
        self.assertTrue(edited_alarm.wednesday)
        self.assertTrue(edited_alarm.thursday)
        self.assertTrue(edited_alarm.friday)
        self.assertTrue(edited_alarm.saturday)
        self.assertTrue(edited_alarm.sunday)
        self.assertFalse(edited_alarm.enabled)
        self.assertEqual(edited_alarm.label, 'New label')
Exemplo n.º 10
0
    def test_update_alarm(self):
        """ Creates an alarm and update it. """
        adh = AlarmDb(self.db_name)
        adh.delete_all_alarms()
        alarm_test = AlarmItem(
            13, 35, days=(False, False, False, False, False, False, False),
            enabled=True, label='')
        original_timestamp = alarm_test.timestamp

        # Add the alarm to the database and check the timestamp has been set
        alarm_test.id_ = adh.add_alarm(alarm_test)
        self.assertNotEqual(alarm_test.timestamp, original_timestamp)
        original_timestamp = alarm_test.timestamp

        # Create a new AlarmItem with the same id and timestamp to update the db
        alarm_updated = AlarmItem(
            21, 12, days=(True, True, True, True, True, True, True),
            enabled=False, label='new label', alarm_id=alarm_test.id_,
            timestamp=original_timestamp)
        time.sleep(1)
        update_success = adh.update_alarm(alarm_updated)
        self.assertEqual(update_success, True)
        self.assertNotEqual(alarm_updated.timestamp, original_timestamp)

        # Check the new data has replaced the old,
        retrieved_alarm = adh.get_alarm(alarm_test.id_)
        self.assertEqual(retrieved_alarm.hour, 21)
        self.assertEqual(retrieved_alarm.minute, 12)
        self.assertTrue(retrieved_alarm.monday)
        self.assertTrue(retrieved_alarm.tuesday)
        self.assertTrue(retrieved_alarm.wednesday)
        self.assertTrue(retrieved_alarm.thursday)
        self.assertTrue(retrieved_alarm.friday)
        self.assertTrue(retrieved_alarm.saturday)
        self.assertTrue(retrieved_alarm.sunday)
        self.assertFalse(retrieved_alarm.enabled)
        self.assertEqual(retrieved_alarm.label, 'new label')
        self.assertEqual(retrieved_alarm.timestamp, alarm_updated.timestamp)
        self.assertGreater(retrieved_alarm.timestamp, original_timestamp)