8000
We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent f481dd1 commit 39fd5e1Copy full SHA for 39fd5e1
tests/test_selectors.py
@@ -13,8 +13,54 @@ def select(self, timeout=None):
13
raise NotImplementedError
14
15
16
-class BaseSelectorTests(unittest.TestCase):
+class _SelectorMappingTests(unittest.TestCase):
17
+
18
+ def test_len(self):
19
+ s = FakeSelector()
20
+ map = selectors._SelectorMapping(s)
21
+ self.assertTrue(map.__len__() == 0)
22
23
+ f = unittest.mock.Mock()
24
+ f.fileno.return_value = 10
25
+ s.register(f, selectors.EVENT_READ, None)
26
+ self.assertTrue(len(map) == 1)
27
28
+ def test_getitem(self):
29
30
31
32
33
34
+ attended = selectors.SelectorKey(f, 10, selectors.EVENT_READ, None)
35
+ self.assertEqual(attended, map.__getitem__(f))
36
37
+ def test_getitem_key_error(self):
38
39
40
+ self.assertTrue(len(map) == 0)
41
42
43
44
+ self.assertRaises(KeyError, 10000 map.__getitem__, 5)
45
46
+ def test_iter(self):
47
48
49
50
51
+ f.fileno.return_value = 5
52
53
+ counter = 0
54
+ for fileno in map.__iter__():
55
+ self.assertEqual(5, fileno)
56
+ counter += 1
57
58
+ for idx in map:
59
+ self.assertEqual(f, map[idx].fileobj)
60
+ self.assertEqual(1, counter)
61
62
63
+class BaseSelectorTests(unittest.TestCase):
64
def test_fileobj_to_fd(self):
65
self.assertEqual(10, selectors._fileobj_to_fd(10))
66
@@ -25,6 +71,9 @@ def test_fileobj_to_fd(self):
71
f.fileno.side_effect = AttributeError
72
self.assertRaises(ValueError, selectors._fileobj_to_fd, f)
73
74
+ f.fileno.return_value = -1
75
+ self.assertRaises(ValueError, selectors._fileobj_to_fd, f)
76
77
def test_selector_key_repr(self):
78
key = selectors.SelectorKey(10, 10, selectors.EVENT_READ, None)
79
self.assertEqual(
@@ -103,6 +152,22 @@ def test_modify_data(self):
103
152
selectors.SelectorKey(fobj, 10, selectors.EVENT_READ, d2),
104
153
s.get_key(fobj))
105
154
155
+ def test_modify_data_use_a_shortcut(self):
156
+ fobj = unittest.mock.Mock()
157
+ fobj.fileno.return_value = 10
158
159
+ d1 = object()
160
+ d2 = object()
161
162
163
+ key = s.register(fobj, selectors.EVENT_READ, d1)
164
165
+ s.unregister = unittest.mock.Mock()
166
+ s.register = unittest.mock.Mock()
167
+ key2 = s.modify(fobj, selectors.EVENT_READ, d2)
168
+ self.assertFalse(s.unregister.called)
169
+ self.assertFalse(s.register.called)
170
106
171
def test_modify_same(self):
107
172
fobj = unittest.mock.Mock()
108
173
fobj.fileno.return_value = 10