-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtype_utils_test.py
33 lines (25 loc) · 1016 Bytes
/
type_utils_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import unittest
from type_utils import is_type_or_raise,check_type_mapping
class TestIsTypeOrRaise(unittest.TestCase):
def test_valid_type(self):
value = 42
name = "example_value"
expected_type = int
result = is_type_or_raise(value, name, expected_type)
self.assertIsNone(result)
def test_none_value(self):
value = None
name = "example_value"
expected_type = int
with self.assertRaises(ValueError) as context:
is_type_or_raise(value, name, expected_type)
self.assertEqual(str(context.exception), f"{name} cannot be None.")
def test_invalid_type(self):
value = "not_an_integer"
name = "example_value"
expected_type = int
with self.assertRaises(TypeError) as context:
is_type_or_raise(value, name, expected_type)
self.assertEqual(str(context.exception), f"{name} must be of type {expected_type.__name__}.")
if __name__ == '__main__':
unittest.main()