def post_process(self): self.min_time_of_day = RuleSetSectionHandler.read_time_of_day( p_time_of_day=self.min_time_of_day) self.max_time_of_day = RuleSetSectionHandler.read_time_of_day( p_time_of_day=self.max_time_of_day) if (self.min_time_of_day is not None and self.max_time_of_day is not None and self.min_time_of_day >= self.max_time_of_day): msg = "Maximum time of day '{max_time_of_day}' must be later than minimum time of day '{min_time_of_day}'" \ " for user '{user}' and context '{context}'" raise configuration.ConfigurationException( msg.format(min_time_of_day=tools.get_time_as_string( self.min_time_of_day), max_time_of_day=tools.get_time_as_string( self.max_time_of_day), user=self.username, context=self.label)) self.max_time_per_day = tools.get_string_as_duration( p_string=self.max_time_per_day) self.max_activity_duration = tools.get_string_as_duration( p_string=self.max_activity_duration) self.min_break = tools.get_string_as_duration(p_string=self.min_break)
def process_formdata(self, valuelist): if valuelist: try: self.data = tools.get_string_as_duration(p_string=valuelist[0]) self.invalid_data = None except Exception as e: self.invalid_data = valuelist[0] raise wtforms.validators.ValidationError(message=str(e)) else: self.data = None self.invalid_data = None
def test_get_string_as_duration_invalid_time(): with pytest.raises(configuration.ConfigurationException): tools.get_string_as_duration(p_string="12x") with pytest.raises(configuration.ConfigurationException): tools.get_string_as_duration(p_string="12h23") with pytest.raises(configuration.ConfigurationException): tools.get_string_as_duration(p_string="X")
def test_get_string_as_duration_none(): assert tools.get_string_as_duration(p_string=None) is None
def test_get_string_as_duration_empty_string(): assert tools.get_string_as_duration(p_string="") is None
def test_get_string_as_duration_valid_time(): assert 12 * 60 * 60 == tools.get_string_as_duration(p_string="12h") assert 12 * 60 * 60 + 23 * 60 == tools.get_string_as_duration( p_string="12h23m") assert 12 * 60 * 60 + 23 * 60 + 45 == tools.get_string_as_duration( p_string="12h23m45s")