def test_register_twice_does_not_duplicate_fd(self, select):
     select.epoll.return_value = FakeEpoll()
     poller = EPollPoller()
     poller.register(0)
     poller.register(0)  # IOError is swallowed
     fd = poller.poll()
     self.assertEqual(list(fd), [0])
 def test_register_twice_does_not_duplicate_fd(self, select):
     select.epoll.return_value = FakeEpoll()
     poller = EPollPoller()
     poller.register(0)
     poller.register(0)  # IOError is swallowed
     fd = poller.poll()
     self.assertEqual(list(fd), [0])
 def test_unregister_twice_has_no_side_effect(self, select):
     select.epoll.return_value = FakeEpoll()
     poller = EPollPoller()
     poller.register(0)
     poller.unregister(0)
     try:
         poller.unregister(0)
     except Exception as ex:
         self.fail("Shouldn't have failed: %s" % ex)
 def test_unregister_twice_has_no_side_effect(self, select):
     select.epoll.return_value = FakeEpoll()
     poller = EPollPoller()
     poller.register(0)
     poller.unregister(0)
     try:
         poller.unregister(0)
     except Exception as ex:
         self.fail("Shouldn't have failed: %s" % ex)
    def test_release_poller(self, select):
        select.epoll.return_value = FakeEpoll()
        poller = EPollPoller()

        poller.register(0)
        poller.register(1)
        fd = poller.poll()
        self.assertEqual(list(fd), [0, 1])

        poller.unregister(0)
        fd = poller.poll()
        self.assertEqual(list(fd), [1])

        poller.release()
        fd = poller.poll()
        self.assertEqual(list(fd), [])
    def test_release_poller(self, select):
        select.epoll.return_value = FakeEpoll()
        poller = EPollPoller()
        
        poller.register(0)
        poller.register(1)
        fd = poller.poll()
        self.assertEqual(list(fd), [0, 1])

        poller.unregister(0)
        fd = poller.poll()
        self.assertEqual(list(fd), [1])
        
        poller.release()
        fd = poller.poll()
        self.assertEqual(list(fd), [])