def test_activity_validator(self): # check invalid id activity = Activity("invalid", Common.convert_to_date("18.11.2016"), Common.convert_to_time("16:47"), "description") self.assertRaises(ActivityValidatorException, ActivityValidator.validate, activity) # check invalid date activity = Activity(1, "invalid", Common.convert_to_time("16:47"), "description") self.assertRaises(ActivityValidatorException, ActivityValidator.validate, activity) # check invalid time activity = Activity(1, Common.convert_to_date("18.11.2016"), "invalid", "description") self.assertRaises(ActivityValidatorException, ActivityValidator.validate, activity) # check invalid description activity = Activity(1, Common.convert_to_date("18.11.2016"), Common.convert_to_time("16:47"), 123) self.assertRaises(ActivityValidatorException, ActivityValidator.validate, activity)
class TestActivity(unittest.TestCase): def setUp(self): super().setUp() self.__activity = Activity(1, Common.convert_to_date("16.11.2016"), Common.convert_to_time("00:33"), "description") def test_entity_id(self): # test getter self.assertEqual(self.__activity.entity_id, 1, "activity entity id should be 1") def test_entity_date(self): self.assertEqual(self.__activity.date, Common.convert_to_date("16.11.2016"), "activity date should be 16.11.2016") def test_entity_time(self): self.assertEqual(self.__activity.time, Common.convert_to_time("00:33"), "activity time should be 0:33") def test_str(self): self.assertEqual( self.__activity.__str__(), "activity_id=1 date=2016-11-16 time=00:33:00 description=description", "str representation should match.")
def read_entity(file_name): with open(file_name, 'r') as f: line = f.read() line = line.split(" ") entity = Activity(int(line[0]), Common.convert_to_date(line[1]), Common.convert_to_time(line[2]), line[3]) return entity return None
def update(self, id, date, time, description): """Update an activity that macthes the given id. Args: id(uint): the id of the activity to be updated. date(datetime.date): the date on which the activity will take place. time(datetime.time): the time at which the activity will take place. description(str): the description of the activity. Returns: None """ self.__activity_repository.update(Activity(id, date, time, description))
def add(self, id, date, time, description): """Add a new person to the person repository. Args: id(uint): the id of the activity. date(datetime.date): the date on which the activity will take place. time(datetime.time): the time at which the activity will take place. description(str): the description of the activity. Returns: None Raises: ActivityControllerException: if two activities overlap. """ for activity in self.get_all(): if activity.date == date and activity.time == time: raise ActivityControllerException( "Activities must not overlap(not have the same starting date/time)." ) self.__activity_repository.save(Activity(id, date, time, description))
def add_activity(self): activity_id = input("activity id:") if not Common.get_type(activity_id) is int: raise ValueError("Activity id must be an integer.") activity_id = int(activity_id) date = input("date:") if not Common.get_type(date) is datetime.date: raise ValueError("Activity date must have the format day.month.year.") date = Common.convert_to_date(date) time = input("time:") if not Common.get_type(time) is datetime.time: raise ValueError("Activity time must have the format hour:minute.") time = Common.convert_to_time(time) description = input("description:") CallStack.add_undo_operation(UndoHandlers.ADD_ACTIVITY_HANDLER,self.__activity_controller,Activity(activity_id,date,time,description)) self.__activity_controller.add(activity_id,date,time,description)
def setUp(self): super().setUp() self.__activity = Activity(1, Common.convert_to_date("16.11.2016"), Common.convert_to_time("00:33"), "description")