42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
import unittest
|
|
|
|
import koji
|
|
from kojihub import convert_value
|
|
|
|
|
|
class TestConvertValue(unittest.TestCase):
|
|
def test_convert_ok(self):
|
|
cases = (
|
|
(str, 'text'),
|
|
(int, 1),
|
|
(bool, True)
|
|
)
|
|
for cast, input in cases:
|
|
output = convert_value(input, cast=cast)
|
|
self.assertEqual(input, output)
|
|
|
|
def test_convert_fail(self):
|
|
with self.assertRaises(koji.ParameterError):
|
|
convert_value('asd', cast=int)
|
|
|
|
def test_convert_exc(self):
|
|
with self.assertRaises(IOError):
|
|
convert_value('asd', cast=int, exc_type=IOError)
|
|
|
|
def test_none(self):
|
|
with self.assertRaises(koji.ParameterError):
|
|
convert_value(None, cast=int)
|
|
value = convert_value(None, cast=int, none_allowed=True)
|
|
self.assertIsNone(value)
|
|
|
|
def test_message(self):
|
|
msg = 'test_message'
|
|
with self.assertRaises(koji.ParameterError) as ex:
|
|
convert_value(None, cast=int, message=msg)
|
|
self.assertEqual(str(ex.exception), msg)
|
|
|
|
def test_only(self):
|
|
"fail on otherwise valid conversions"
|
|
with self.assertRaises(koji.ParameterError):
|
|
convert_value(None, cast=bool, check_only=True)
|
|
|