def test_is_active_should_allow_floats(self): condition = Range() assert not condition.is_active('1-2', 0.0) assert not condition.is_active('1-2', 0.9) assert condition.is_active('1-2', 1.0) assert condition.is_active('1-2', 1.5) assert condition.is_active('1-2', 2.0) assert not condition.is_active('1-2', 2.1) assert not condition.is_active('1-2', 2.01) assert not condition.is_active('1-2', 2.001) assert not condition.is_active('1-2', 3.0) assert not condition.is_active('1-2', 9e9)
class NumberConditionSet(ConditionSet): in_range = Range() def get_field_value(self, instance, field_name): if field_name == 'in_range': return instance
def test_clean_fail_too_many_numbers(self): condition = Range() with pytest.raises(ValidationError): condition.clean('1-2-3')
def test_clean_fail_no_numbers(self): condition = Range() with pytest.raises(ValidationError): condition.clean('-')
def test_clean_fail_no_dash(self): condition = Range() with pytest.raises(ValidationError): condition.clean('1')
def test_clean_fail_empty(self): condition = Range() with pytest.raises(ValidationError): condition.clean('')
def test_clean_success(self): condition = Range() assert condition.clean('1-2') == '1-2'
def test_is_active_shouldnt_allow_strings(self): condition = Range() assert not condition.is_active('1-2', '0') assert not condition.is_active('1-2', '1') assert not condition.is_active('1-2', '2') assert not condition.is_active('1-2', '3')
def test_is_active(self): condition = Range() assert not condition.is_active('1-2', 0) assert condition.is_active('1-2', 1) assert condition.is_active('1-2', 2) assert not condition.is_active('1-2', 3)