def validate_args(self, submit_date, turnaround_hours): if not Validation.is_valid_date(submit_date): raise TypeError("Invalid submit. Date should be python datetime.") if not Validation.is_valid_turnaround_hours(turnaround_hours): raise TypeError("Invalid turnaround hours. It must be a non-negative int.") if not Validation.time_out_of_range(submit_date, [self.start_hour, self.end_hour]): error_msg = "Invalid date.\ Time must be between {} and {}".format(self.start_hour, self.end_hour) raise ValueError(error_msg) if not Validation.is_date_on_weekday(submit_date): raise ValueError("Invalid date. The given date is on a weekend.")
def add_days(date): temp_date = date + dt.timedelta(days=1) while Validation.is_date_on_weekday(temp_date) is False: temp_date += dt.timedelta(days=1) return temp_date
def test_is_date_on_weekday_false(self): test_date = dt.datetime(2018, 10, 20, 13, 20) self.assertFalse(Validation.is_date_on_weekday(test_date))
def test_is_valid_date_true(self): test_date = dt.datetime(2018, 10, 19, 12, 50) self.assertTrue(Validation.is_valid_date(test_date))
def test_is_date_on_weekday_true(self): test_date = dt.datetime(2018, 10, 19, 12, 40) self.assertTrue(Validation.is_date_on_weekday(test_date))
def test_is_valid_turnaround_hours_true(self): test_turnaround_hours = 5 self.assertTrue( Validation.is_valid_turnaround_hours(test_turnaround_hours))
def test_is_valid_turnaround_hours_false(self): test_turnaround_hours = [-1, 'test'] for item in test_turnaround_hours: self.assertFalse(Validation.is_valid_turnaround_hours(item))
def test_date_time_out_of_range_true(self): test_date = dt.datetime(2018, 10, 12, 17, 0, 0) self.assertTrue(Validation.time_out_of_range(test_date, [9, 17]))
def test_is_valid_date_wrong_fromat(self): test_date = "2018-10-18 12:50" self.assertFalse(Validation.is_valid_date(test_date))