diff options
| author | Guido van Rossum <guido@python.org> | 2013-11-07 09:20:46 -0800 |
|---|---|---|
| committer | Guido van Rossum <guido@python.org> | 2013-11-07 09:20:46 -0800 |
| commit | aed036c1a70aa5ec8081e2888afe321d615b61a4 (patch) | |
| tree | 048f1d84c99e80bbc2706be053a478f213ccf1b3 /tests | |
| parent | 08dba3d62661ae36d45c943c171f003bd9004638 (diff) | |
| download | trollius-aed036c1a70aa5ec8081e2888afe321d615b61a4.tar.gz | |
Improved tests for selectors.py by Arnaud Faure.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_selectors.py | 67 |
1 files changed, 66 insertions, 1 deletions
diff --git a/tests/test_selectors.py b/tests/test_selectors.py index db5b3ec..7801289 100644 --- a/tests/test_selectors.py +++ b/tests/test_selectors.py @@ -13,8 +13,54 @@ class FakeSelector(selectors.BaseSelector): raise NotImplementedError -class BaseSelectorTests(unittest.TestCase): +class _SelectorMappingTests(unittest.TestCase): + + def test_len(self): + s = FakeSelector() + map = selectors._SelectorMapping(s) + self.assertTrue(map.__len__() == 0) + + f = unittest.mock.Mock() + f.fileno.return_value = 10 + s.register(f, selectors.EVENT_READ, None) + self.assertTrue(len(map) == 1) + + def test_getitem(self): + s = FakeSelector() + map = selectors._SelectorMapping(s) + f = unittest.mock.Mock() + f.fileno.return_value = 10 + s.register(f, selectors.EVENT_READ, None) + attended = selectors.SelectorKey(f, 10, selectors.EVENT_READ, None) + self.assertEqual(attended, map.__getitem__(f)) + + def test_getitem_key_error(self): + s = FakeSelector() + map = selectors._SelectorMapping(s) + self.assertTrue(len(map) == 0) + f = unittest.mock.Mock() + f.fileno.return_value = 10 + s.register(f, selectors.EVENT_READ, None) + self.assertRaises(KeyError, map.__getitem__, 5) + + def test_iter(self): + s = FakeSelector() + map = selectors._SelectorMapping(s) + self.assertTrue(len(map) == 0) + f = unittest.mock.Mock() + f.fileno.return_value = 5 + s.register(f, selectors.EVENT_READ, None) + counter = 0 + for fileno in map.__iter__(): + self.assertEqual(5, fileno) + counter += 1 + for idx in map: + self.assertEqual(f, map[idx].fileobj) + self.assertEqual(1, counter) + + +class BaseSelectorTests(unittest.TestCase): def test_fileobj_to_fd(self): self.assertEqual(10, selectors._fileobj_to_fd(10)) @@ -25,6 +71,9 @@ class BaseSelectorTests(unittest.TestCase): f.fileno.side_effect = AttributeError self.assertRaises(ValueError, selectors._fileobj_to_fd, f) + f.fileno.return_value = -1 + self.assertRaises(ValueError, selectors._fileobj_to_fd, f) + def test_selector_key_repr(self): key = selectors.SelectorKey(10, 10, selectors.EVENT_READ, None) self.assertEqual( @@ -103,6 +152,22 @@ class BaseSelectorTests(unittest.TestCase): selectors.SelectorKey(fobj, 10, selectors.EVENT_READ, d2), s.get_key(fobj)) + def test_modify_data_use_a_shortcut(self): + fobj = unittest.mock.Mock() + fobj.fileno.return_value = 10 + + d1 = object() + d2 = object() + + s = FakeSelector() + key = s.register(fobj, selectors.EVENT_READ, d1) + + s.unregister = unittest.mock.Mock() + s.register = unittest.mock.Mock() + key2 = s.modify(fobj, selectors.EVENT_READ, d2) + self.assertFalse(s.unregister.called) + self.assertFalse(s.register.called) + def test_modify_same(self): fobj = unittest.mock.Mock() fobj.fileno.return_value = 10 |
