8000 Improved tests for selectors.py by Arnaud Faure. · Python-Repository-Hub/asyncio@39fd5e1 · GitHub
[go: up one dir, main page]

Skip to content

Commit 39fd5e1

Browse files
committed
Improved tests for selectors.py by Arnaud Faure.
1 parent f481dd1 commit 39fd5e1

File tree

1 file changed

+66
-1
lines changed

1 file changed

+66
-1
lines changed

tests/test_selectors.py

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,54 @@ def select(self, timeout=None):
1313
raise NotImplementedError
1414

1515

16-
class BaseSelectorTests(unittest.TestCase):
16+
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+
s = FakeSelector()
30+
map = selectors._SelectorMapping(s)
31+
f = unittest.mock.Mock()
32+
f.fileno.return_value = 10
33+
s.register(f, selectors.EVENT_READ, None)
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+
s = FakeSelector()
39+
map = selectors._SelectorMapping(s)
40+
self.assertTrue(len(map) == 0)
41+
f = unittest.mock.Mock()
42+
f.fileno.return_value = 10
43+
s.register(f, selectors.EVENT_READ, None)
44+
self.assertRaises(KeyError, 10000 map.__getitem__, 5)
45+
46+
def test_iter(self):
47+
s = FakeSelector()
48+
map = selectors._SelectorMapping(s)
49+
self.assertTrue(len(map) == 0)
50+
f = unittest.mock.Mock()
51+
f.fileno.return_value = 5
52+
s.register(f, selectors.EVENT_READ, None)
53+
counter = 0
54+
for fileno in map.__iter__():
55+
self.assertEqual(5, fileno)
56+
counter += 1
1757

58+
for idx in map:
59+
self.assertEqual(f, map[idx].fileobj)
60+
self.assertEqual(1, counter)
61+
62+
63+
class BaseSelectorTests(unittest.TestCase):
1864
def test_fileobj_to_fd(self):
1965
self.assertEqual(10, selectors._fileobj_to_fd(10))
2066

@@ -25,6 +71,9 @@ def test_fileobj_to_fd(self):
2571
f.fileno.side_effect = AttributeError
2672
self.assertRaises(ValueError, selectors._fileobj_to_fd, f)
2773

74+
f.fileno.return_value = -1
75+
self.assertRaises(ValueError, selectors._fileobj_to_fd, f)
76+
2877
def test_selector_key_repr(self):
2978
key = selectors.SelectorKey(10, 10, selectors.EVENT_READ, None)
3079
self.assertEqual(
@@ -103,6 +152,22 @@ def test_modify_data(self):
103152
selectors.SelectorKey(fobj, 10, selectors.EVENT_READ, d2),
104153
s.get_key(fobj))
105154

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+
s = FakeSelector()
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+
106171
def test_modify_same(self):
107172
fobj = unittest.mock.Mock()
108173
fobj.fileno.return_value = 10

0 commit comments

Comments
 (0)
0