Beispiel #1
0
 def test_convert_and_use_params(self):
     arg = Arg(float, use=lambda val: val + 1)
     assert arg.validated('foo', 41) == 42.0
Beispiel #2
0
 def test_error_raised_if_use_is_uncallable(self):
     with pytest.raises(ValueError) as excinfo:
         Arg(use='bad')
     assert '{0!r} is not a callable or list of callables'.format('bad') in str(excinfo)
Beispiel #3
0
 def test_use_param(self):
     arg = Arg(use=lambda x: x.upper())
     assert arg.validated('foo', 'foo') == 'FOO'
Beispiel #4
0
 def test_use_can_be_list_of_callables(self):
     arg = Arg(use=[lambda x: x.upper(), lambda x: x.strip()])
     assert arg.validated('foo', '  foo  ') == 'FOO'
Beispiel #5
0
 def test_default_valdation_msg(self):
     arg = Arg(validate=lambda x: x == 42)
     with pytest.raises(ValidationError) as excinfo:
         arg.validated('foo', 1)
     assert 'Validator <lambda>(1) is not True' in str(excinfo)
Beispiel #6
0
 def test_conversion_to_str(self):
     arg = Arg(str)
     assert arg.validated('foo', 42) == '42'
Beispiel #7
0
 def test_custom_error(self):
     arg = Arg(type_=int, error='not an int!')
     with pytest.raises(ValidationError) as excinfo:
         arg.validated('foo', 'badinput')
     assert 'not an int!' in str(excinfo)
Beispiel #8
0
 def test_validated_string_conversion_null(self):
     arg = Arg(type_=str)
     assert arg.validated('foo', None) is None
Beispiel #9
0
 def test_validated_long_type(self):
     arg = Arg(type_=long_type)
     assert arg.validated('foo', 42) == 42
Beispiel #10
0
 def test_validated_text_type(self):
     arg = Arg(type_=text_type)
     assert arg.validated('foo', 42) == '42'
Beispiel #11
0
 def test_validated_null_noop(self):
     arg = Arg()
     assert arg.validated('foo', {}) == {}
     assert arg.validated('foo', None) is None