def test_wait_io_close_is_called(self): selector = selectors.DefaultSelector() self.addCleanup(selector.close) def fake_constructor(): return selector old_selector = wait.DefaultSelector wait.DefaultSelector = fake_constructor self.addCleanup(setattr, wait, "DefaultSelector", old_selector) rd, wr = self.make_socketpair() wait.wait_for_write([rd, wr], 0.001) self.assertIs(selector._map, None)
def test_wait_io_close_is_called(self): selector = self.SELECTOR() self.addCleanup(selector.close) def fake_constructor(*args, **kwargs): return selector old_selector = wait.DefaultSelector wait.DefaultSelector = fake_constructor self.addCleanup(setattr, wait, "DefaultSelector", old_selector) rd, wr = self.make_socketpair() wait.wait_for_write([rd, wr], 0.001) self.assertIs(selector._map, None)
def test_wait_for_write_multiple_socket(self): wr, wr2 = self.make_socketpair() result = wait.wait_for_write([wr, wr2], timeout=SHORT_SELECT) # assertItemsEqual renamed in Python 3.x if hasattr(self, "assertItemsEqual"): self.assertItemsEqual([wr, wr2], result) else: self.assertCountEqual([wr, wr2], result)
def test_wait_for_read_write(spair): a, b = spair assert not wait_for_read(a, 0) assert wait_for_write(a, 0) b.send(b"x") assert wait_for_read(a, 0) assert wait_for_write(a, 0) # Fill up the socket with data a.setblocking(False) try: while True: a.send(b"x" * 999999) except (OSError, socket.error): pass # Now it's not writable anymore assert not wait_for_write(a, 0)
def test_wait_for_read_write(spair: TYPE_SOCKET_PAIR) -> None: a, b = spair assert not wait_for_read(a, 0) assert wait_for_write(a, 0) b.send(b"x") assert wait_for_read(a, 0) assert wait_for_write(a, 0) # Fill up the socket with data a.setblocking(False) try: while True: a.send(b"x" * 999999) except OSError: pass # Now it's not writable anymore assert not wait_for_write(a, 0)
def test_wait_for_write_empty(self): self.assertEqual([], wait.wait_for_write([], timeout=SHORT_SELECT))
def test_wait_for_write_single_socket(self): wr, wr2 = self.make_socketpair() self.assertEqual([wr], wait.wait_for_write(wr, timeout=SHORT_SELECT))