예제 #1
0
 def test_strip_custom(self):
     field = StringField(transform_strip='/')
     assert field.validate(self.cfg, '// hello  ///') == ' hello  '
예제 #2
0
 def test_choice_valid(self):
     field = StringField(choices=['a', 'b', 'c'])
     assert field.validate(self.cfg, 'a') == 'a'
예제 #3
0
 def test_strip_preserve(self):
     field = StringField()
     assert field.validate(self.cfg, ' hello ') == ' hello '
예제 #4
0
 def test_strip_whitespace(self):
     field = StringField(transform_strip=True)
     assert field.validate(self.cfg, '  hello  ') == 'hello'
예제 #5
0
 def test_regex_match(self):
     field = StringField(regex='^h.*$')
     assert field.validate(self.cfg, 'hello') == 'hello'
예제 #6
0
 def test_regex_no_match(self):
     field = StringField(regex='^H.*$')
     with pytest.raises(ValueError):
         field.validate(self.cfg, 'hello')
예제 #7
0
 def test_max_length_valid(self):
     field = StringField(max_len=5)
     assert field.validate(self.cfg, 'hello') == 'hello'
예제 #8
0
    def test_choice_error_message_too_many(self):
        field = StringField(choices=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
        with pytest.raises(ValueError) as excinfo:
            field.validate(self.cfg, 'qwer')

        assert not str(excinfo.value).endswith(' a, b, c, d, e, f, g')
예제 #9
0
 def test_case_upper(self):
     field = StringField(transform_case='upper')
     assert field.validate(self.cfg, 'hello') == 'HELLO'
예제 #10
0
 def test_case_preserve(self):
     field = StringField()
     assert field.validate(self.cfg, 'HellO') == 'HellO'
예제 #11
0
 def test_empty_string_not_required(self):
     field = StringField(required=False)
     assert field.validate(self.cfg, '') == ''
예제 #12
0
 def test_empty_string_requied(self):
     field = StringField(required=True)
     with pytest.raises(ValueError):
         field.validate(self.cfg, '')
예제 #13
0
 def test_non_string(self):
     field = StringField()
     with pytest.raises(ValueError):
         field.validate(self.cfg, 100)
예제 #14
0
 def test_choice_invalid(self):
     field = StringField(choices=['a', 'b', 'c'])
     with pytest.raises(ValueError):
         field.validate(self.cfg, 'z')
예제 #15
0
 def test_max_length_invalid(self):
     field = StringField(max_len=4)
     with pytest.raises(ValueError):
         field.validate(self.cfg, 'hello')
예제 #16
0
 def test_choice_lower_valid(self):
     field = StringField(choices=['a', 'b', 'c'], transform_case='lower')
     assert field.validate(self.cfg, 'A') == 'a'
예제 #17
0
    def test_choice_error_message_list(self):
        field = StringField(choices=['a', 'b', 'c'])
        with pytest.raises(ValueError) as excinfo:
            field.validate(self.cfg, 'qwer')

        assert str(excinfo.value).endswith(' a, b, c')