-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstate_test.py
More file actions
66 lines (48 loc) · 2.09 KB
/
state_test.py
File metadata and controls
66 lines (48 loc) · 2.09 KB
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import unittest
import enum
import exceptions
import state
@enum.unique
class TestEnum(enum.Enum):
NADA = 'nada'
UNO = 'uno'
DOS = 'dos'
class StateTest(unittest.TestCase):
def test_get_float(self):
self.assertEqual(1.1, state.get_float({'key': '1.1'}, 'key', 42.0))
self.assertEqual(1.1, state.get_float({'key': 1.1}, 'key', 42.0))
def test_get_default_float(self):
self.assertEqual(42.0, state.get_float({}, 'key', 42.0))
def test_get_bad_float(self):
with self.assertRaises(exceptions.BadFloat):
state.get_float({'key': 'not_a_float'}, 'key', 42.0)
def test_get_float_or_none_with_existing_value(self):
self.assertEqual(1.1, state.get_float_or_none({'key': '1.1'}, 'key'))
self.assertEqual(1.1, state.get_float_or_none({'key': 1.1}, 'key'))
def test_get_float_or_none_with_non_existing_value(self):
self.assertIsNone(state.get_float_or_none({}, 'key'))
def test_get_float_or_none_bad_float(self):
with self.assertRaises(exceptions.BadFloat):
state.get_float_or_none({'key': 'not_a_float'}, 'key')
def test_get_int(self):
self.assertEqual(1, state.get_int({'key': '1'}, 'key', 42))
self.assertEqual(1, state.get_int({'key': 1}, 'key', 42))
def test_get_default_int(self):
self.assertEqual(42, state.get_int({}, 'key', 42))
def test_get_bad_int(self):
with self.assertRaises(exceptions.BadInteger):
state.get_int({'key': 'not_an_int'}, 'key', 42.0)
def test_get_enum(self):
self.assertEqual(
TestEnum.UNO, state.get_enum({'key': 'uno'}, 'key', TestEnum.NADA)
)
self.assertEqual(
TestEnum.UNO, state.get_enum({'key': TestEnum.UNO}, 'key', TestEnum.NADA)
)
def test_get_default_enum(self):
self.assertEqual(TestEnum.NADA, state.get_enum({}, 'key', TestEnum.NADA))
def test_get_bad_enum(self):
with self.assertRaises(exceptions.BadEnum):
state.get_enum({'key': 'not_an_enum'}, 'key', TestEnum.NADA)
if __name__ == '__main__':
unittest.main()