Esempio n. 1
0
 def test_write_eof_pending(self):
     tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                              self.protocol)
     tr._buffer = [b'data']
     tr.write_eof()
     self.assertTrue(tr._closing)
     self.assertFalse(self.protocol.connection_lost.called)
Esempio n. 2
0
 def test_ctor_with_waiter(self):
     fut = futures.Future(loop=self.loop)
     tr = unix_events._UnixWritePipeTransport(
         self.loop, self.pipe, self.protocol, fut)
     self.loop.assert_reader(5, tr._read_ready)
     test_utils.run_briefly(self.loop)
     self.assertEqual(None, fut.result())
Esempio n. 3
0
 def test_ctor(self):
     tr = unix_events._UnixWritePipeTransport(
         self.loop, self.pipe, self.protocol)
     self.loop.add_reader.assert_called_with(5, tr._read_ready)
     self.loop.call_soon.assert_called_with(
         self.protocol.connection_made, tr)
     self.assertTrue(tr._enable_read_hack)
Esempio n. 4
0
    def test_close(self):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        tr.write_eof = unittest.mock.Mock()
        tr.close()
        tr.write_eof.assert_called_with()
Esempio n. 5
0
 def test_pause_resume_writing(self):
     tr = unix_events._UnixWritePipeTransport(
         self.loop, self.pipe, self.protocol)
     tr.pause_writing()
     self.assertFalse(tr._writing)
     tr.resume_writing()
     self.assertTrue(tr._writing)
Esempio n. 6
0
    def test_write_no_data(self, m_fcntl, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)

        tr.write(b'')
        self.assertFalse(m_write.called)
        self.assertFalse(self.loop.add_writer.called)
        self.assertEqual([], tr._buffer)
Esempio n. 7
0
 def test_discard_output_without_pending_writes(self):
     tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                              self.protocol)
     tr.discard_output()
     self.assertTrue(tr._writing)
     self.assertFalse(self.loop.remove_writer.called)
     self.assertEqual([], tr._buffer)
Esempio n. 8
0
 def test_ctor(self):
     tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                              self.protocol)
     self.loop.add_reader.assert_called_with(5, tr._read_ready)
     self.loop.call_soon.assert_called_with(self.protocol.connection_made,
                                            tr)
     self.assertTrue(tr._enable_read_hack)
Esempio n. 9
0
 def test_pause_resume_writing(self):
     tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                              self.protocol)
     tr.pause_writing()
     self.assertFalse(tr._writing)
     tr.resume_writing()
     self.assertTrue(tr._writing)
Esempio n. 10
0
    def test_close_closing(self, m_fcntl):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)

        tr.write_eof = unittest.mock.Mock()
        tr._closing = True
        tr.close()
        self.assertFalse(tr.write_eof.called)
Esempio n. 11
0
 def test_discard_output_without_pending_writes(self):
     tr = unix_events._UnixWritePipeTransport(
         self.loop, self.pipe, self.protocol)
     tr.discard_output()
     self.assertTrue(tr._writing)
     self.assertFalse(self.loop.remove_writer.called)
     self.assertEqual([], tr._buffer)
Esempio n. 12
0
    def test_write_eof(self, m_fcntl):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)

        tr.write_eof()
        self.assertTrue(tr._closing)
        self.loop.call_soon.assert_called_with(
            tr._call_connection_lost, None)
Esempio n. 13
0
 def test_write_eof_pending(self, m_fcntl):
     tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)
     tr.register_protocol(self.protocol)
     tr._buffer = [b'data']
     tr.write_eof()
     self.assertTrue(tr._closing)
     self.assertFalse(self.protocol.connection_lost.called)
Esempio n. 14
0
    def test_close(self):
        tr = unix_events._UnixWritePipeTransport(
            self.loop, self.pipe, self.protocol)

        tr.write_eof = unittest.mock.Mock()
        tr.close()
        tr.write_eof.assert_called_with()
Esempio n. 15
0
 def test_ctor_with_waiter(self):
     fut = futures.Future(loop=self.loop)
     tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                              self.protocol, fut)
     self.loop.assert_reader(5, tr._read_ready)
     test_utils.run_briefly(self.loop)
     self.assertEqual(None, fut.result())
Esempio n. 16
0
 def test_ctor_with_waiter(self):
     fut = futures.Future(loop=self.loop)
     tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                              self.protocol, fut)
     self.loop.call_soon.assert_called_with(fut.set_result, None)
     self.loop.add_reader.assert_called_with(5, tr._read_ready)
     self.assertTrue(tr._enable_read_hack)
     fut.cancel()
Esempio n. 17
0
 def test_ctor_with_regular_file(self):
     with tempfile.TemporaryFile() as f:
         tr = unix_events._UnixWritePipeTransport(self.loop, f,
                                                  self.protocol)
         self.assertFalse(self.loop.add_reader.called)
         self.loop.call_soon.assert_called_with(
             self.protocol.connection_made, tr)
         self.assertFalse(tr._enable_read_hack)
Esempio n. 18
0
 def test_discard_output(self):
     tr = unix_events._UnixWritePipeTransport(
         self.loop, self.pipe, self.protocol)
     tr._buffer = [b'da', b'ta']
     tr.discard_output()
     self.assertTrue(tr._writing)
     self.loop.remove_writer.assert_called_with(5)
     self.assertEqual([], tr._buffer)
Esempio n. 19
0
    def test__call_connection_lost(self):
        tr = unix_events._UnixWritePipeTransport(
            self.loop, self.pipe, self.protocol)

        err = None
        tr._call_connection_lost(err)
        self.protocol.connection_lost.assert_called_with(err)
        self.pipe.close.assert_called_with()
Esempio n. 20
0
 def test_ctor_with_waiter(self):
     fut = futures.Future(loop=self.loop)
     tr = unix_events._UnixWritePipeTransport(
         self.loop, self.pipe, self.protocol, fut)
     self.loop.call_soon.assert_called_with(fut.set_result, None)
     self.loop.add_reader.assert_called_with(5, tr._read_ready)
     self.assertTrue(tr._enable_read_hack)
     fut.cancel()
Esempio n. 21
0
 def test_discard_output(self):
     tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                              self.protocol)
     tr._buffer = [b'da', b'ta']
     tr.discard_output()
     self.assertTrue(tr._writing)
     self.loop.remove_writer.assert_called_with(5)
     self.assertEqual([], tr._buffer)
Esempio n. 22
0
    def test__call_connection_lost_with_err(self, m_fcntl):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)
        tr.register_protocol(self.protocol)

        err = OSError()
        tr._call_connection_lost(err)
        self.protocol.connection_lost.assert_called_with(err)
        self.pipe.close.assert_called_with()
Esempio n. 23
0
 def test__write_ready(self, m_fcntl, m_write):
     tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)
     tr._buffer = [b'da', b'ta']
     m_write.return_value = 4
     tr._write_ready()
     m_write.assert_called_with(5, b'data')
     self.loop.remove_writer.assert_called_with(5)
     self.assertEqual([], tr._buffer)
Esempio n. 24
0
    def test_write_buffer(self, m_fcntl, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)

        tr._buffer = [b'previous']
        tr.write(b'data')
        self.assertFalse(m_write.called)
        self.assertFalse(self.loop.add_writer.called)
        self.assertEqual([b'previous', b'data'], tr._buffer)
Esempio n. 25
0
    def test_close_closing(self):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        tr.write_eof = unittest.mock.Mock()
        tr._closing = True
        tr.close()
        self.assertFalse(tr.write_eof.called)
Esempio n. 26
0
    def test_write_partial(self, m_fcntl, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)

        m_write.return_value = 2
        tr.write(b'data')
        m_write.assert_called_with(5, b'data')
        self.loop.add_writer.assert_called_with(5, tr._write_ready)
        self.assertEqual([b'ta'], tr._buffer)
Esempio n. 27
0
    def test_write(self, m_fcntl, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)

        m_write.return_value = 4
        tr.write(b'data')
        m_write.assert_called_with(5, b'data')
        self.assertFalse(self.loop.add_writer.called)
        self.assertEqual([], tr._buffer)
Esempio n. 28
0
 def test_ctor_with_regular_file(self):
     with tempfile.TemporaryFile() as f:
         tr = unix_events._UnixWritePipeTransport(self.loop, f,
                                                  self.protocol)
         self.assertFalse(self.loop.add_reader.called)
         self.loop.call_soon.assert_called_with(
             self.protocol.connection_made, tr)
         self.assertFalse(tr._enable_read_hack)
Esempio n. 29
0
    def test_write_no_data(self, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        tr.write(b'')
        self.assertFalse(m_write.called)
        self.assertFalse(self.loop.writers)
        self.assertEqual([], tr._buffer)
Esempio n. 30
0
    def test_write_eof(self):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        tr.write_eof()
        self.assertTrue(tr._closing)
        self.loop.remove_reader.assert_called_with(5)
        self.loop.call_soon.assert_called_with(tr._call_connection_lost, None)
Esempio n. 31
0
    def test__call_connection_lost_with_err(self):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        err = OSError()
        tr._call_connection_lost(err)
        self.protocol.connection_lost.assert_called_with(err)
        self.pipe.close.assert_called_with()
Esempio n. 32
0
    def test_write_again(self, m_fcntl, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)

        m_write.side_effect = BlockingIOError()
        tr.write(b'data')
        m_write.assert_called_with(5, b'data')
        self.loop.add_writer.assert_called_with(5, tr._write_ready)
        self.assertEqual([b'data'], tr._buffer)
Esempio n. 33
0
    def test_write_buffer(self, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        tr._buffer = [b'previous']
        tr.write(b'data')
        self.assertFalse(m_write.called)
        self.assertFalse(self.loop.add_writer.called)
        self.assertEqual([b'previous', b'data'], tr._buffer)
Esempio n. 34
0
    def test_write_again(self, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        m_write.side_effect = BlockingIOError()
        tr.write(b'data')
        m_write.assert_called_with(5, b'data')
        self.loop.assert_writer(5, tr._write_ready)
        self.assertEqual([b'data'], tr._buffer)
Esempio n. 35
0
    def test_write_close(self, m_write):
        tr = unix_events._UnixWritePipeTransport(
            self.loop, self.pipe, self.protocol)
        tr._read_ready()  # pipe was closed by peer

        tr.write(b'data')
        self.assertEqual(tr._conn_lost, 1)
        tr.write(b'data')
        self.assertEqual(tr._conn_lost, 2)
Esempio n. 36
0
    def test_write_close(self, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)
        tr._read_ready()  # pipe was closed by peer

        tr.write(b'data')
        self.assertEqual(tr._conn_lost, 1)
        tr.write(b'data')
        self.assertEqual(tr._conn_lost, 2)
Esempio n. 37
0
    def test_write_eof(self):
        tr = unix_events._UnixWritePipeTransport(
            self.loop, self.pipe, self.protocol)

        tr.write_eof()
        self.assertTrue(tr._closing)
        self.assertFalse(self.loop.readers)
        test_utils.run_briefly(self.loop)
        self.protocol.connection_lost.assert_called_with(None)
Esempio n. 38
0
 def test__write_ready(self, m_write):
     tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                              self.protocol)
     tr._buffer = [b'da', b'ta']
     m_write.return_value = 4
     tr._write_ready()
     m_write.assert_called_with(5, b'data')
     self.loop.remove_writer.assert_called_with(5)
     self.assertEqual([], tr._buffer)
Esempio n. 39
0
    def test_write_partial(self, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        m_write.return_value = 2
        tr.write(b'data')
        m_write.assert_called_with(5, b'data')
        self.loop.assert_writer(5, tr._write_ready)
        self.assertEqual([b'ta'], tr._buffer)
Esempio n. 40
0
    def test_write_eof(self):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        tr.write_eof()
        self.assertTrue(tr._closing)
        self.assertFalse(self.loop.readers)
        test_utils.run_briefly(self.loop)
        self.protocol.connection_lost.assert_called_with(None)
Esempio n. 41
0
    def test_write_eof(self):
        tr = unix_events._UnixWritePipeTransport(
            self.loop, self.pipe, self.protocol)

        tr.write_eof()
        self.assertTrue(tr._closing)
        self.loop.remove_reader.assert_called_with(5)
        self.loop.call_soon.assert_called_with(
            tr._call_connection_lost, None)
Esempio n. 42
0
    def test__write_ready_again(self, m_fcntl, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)

        tr._buffer = [b'da', b'ta']
        m_write.side_effect = BlockingIOError()
        tr._write_ready()
        m_write.assert_called_with(5, b'data')
        self.assertFalse(self.loop.remove_writer.called)
        self.assertEqual([b'data'], tr._buffer)
Esempio n. 43
0
    def test_write(self, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        m_write.return_value = 4
        tr.write(b'data')
        m_write.assert_called_with(5, b'data')
        self.assertFalse(self.loop.writers)
        self.assertEqual([], tr._buffer)
Esempio n. 44
0
    def test_write_eof(self):
        with tempfile.TemporaryFile() as f:
            tr = unix_events._UnixWritePipeTransport(self.loop, f,
                                                     self.protocol)

            tr.write_eof()
            self.assertTrue(tr._closing)
            self.assertFalse(self.loop.remove_reader.called)
            self.loop.call_soon.assert_called_with(tr._call_connection_lost,
                                                   None)
Esempio n. 45
0
    def test_write_eof(self):
        with tempfile.TemporaryFile() as f:
            tr = unix_events._UnixWritePipeTransport(
                self.loop, f, self.protocol)

            tr.write_eof()
            self.assertTrue(tr._closing)
            self.assertFalse(self.loop.remove_reader.called)
            self.loop.call_soon.assert_called_with(
                tr._call_connection_lost, None)
Esempio n. 46
0
 def test__write_ready(self, m_write):
     tr = unix_events._UnixWritePipeTransport(
         self.loop, self.pipe, self.protocol)
     self.loop.add_writer(5, tr._write_ready)
     tr._buffer = [b'da', b'ta']
     m_write.return_value = 4
     tr._write_ready()
     m_write.assert_called_with(5, b'data')
     self.assertFalse(self.loop.writers)
     self.assertEqual([], tr._buffer)
Esempio n. 47
0
    def test__write_ready_again(self, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        tr._buffer = [b'da', b'ta']
        m_write.side_effect = BlockingIOError()
        tr._write_ready()
        m_write.assert_called_with(5, b'data')
        self.assertFalse(self.loop.remove_writer.called)
        self.assertEqual([b'data'], tr._buffer)
Esempio n. 48
0
    def test__write_ready_empty(self, m_write):
        tr = unix_events._UnixWritePipeTransport(
            self.loop, self.pipe, self.protocol)

        tr._buffer = [b'da', b'ta']
        m_write.return_value = 0
        tr._write_ready()
        m_write.assert_called_with(5, b'data')
        self.assertFalse(self.loop.remove_writer.called)
        self.assertEqual([b'data'], tr._buffer)
Esempio n. 49
0
 def test__write_ready_on_pause(self, m_write):
     tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                              self.protocol)
     tr._buffer = [b'da', b'ta']
     tr.pause_writing()
     self.loop.remove_writer.reset_mock()
     tr._write_ready()
     self.assertFalse(m_write.called)
     self.assertFalse(self.loop.remove_writer.called)
     self.assertEqual([b'da', b'ta'], tr._buffer)
     self.assertFalse(tr._writing)
Esempio n. 50
0
    def test__write_ready_again(self, m_write):
        tr = unix_events._UnixWritePipeTransport(
            self.loop, self.pipe, self.protocol)

        self.loop.add_writer(5, tr._write_ready)
        tr._buffer = [b'da', b'ta']
        m_write.side_effect = BlockingIOError()
        tr._write_ready()
        m_write.assert_called_with(5, b'data')
        self.loop.assert_writer(5, tr._write_ready)
        self.assertEqual([b'data'], tr._buffer)
Esempio n. 51
0
    def test_abort(self, m_fcntl, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)

        tr._buffer = [b'da', b'ta']
        tr.abort()
        self.assertFalse(m_write.called)
        self.loop.remove_writer.assert_called_with(5)
        self.assertEqual([], tr._buffer)
        self.assertTrue(tr._closing)
        self.loop.call_soon.assert_called_with(
            tr._call_connection_lost, None)
Esempio n. 52
0
 def test__write_ready_on_pause(self, m_write):
     tr = unix_events._UnixWritePipeTransport(
         self.loop, self.pipe, self.protocol)
     tr._buffer = [b'da', b'ta']
     tr.pause_writing()
     self.loop.remove_writer.reset_mock()
     tr._write_ready()
     self.assertFalse(m_write.called)
     self.assertFalse(self.loop.remove_writer.called)
     self.assertEqual([b'da', b'ta'], tr._buffer)
     self.assertFalse(tr._writing)
Esempio n. 53
0
    def test_abort(self, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        tr._buffer = [b'da', b'ta']
        tr.abort()
        self.assertFalse(m_write.called)
        self.loop.remove_writer.assert_called_with(5)
        self.loop.remove_reader.assert_called_with(5)
        self.assertEqual([], tr._buffer)
        self.assertTrue(tr._closing)
        self.loop.call_soon.assert_called_with(tr._call_connection_lost, None)
Esempio n. 54
0
    def test_pause_resume_writing_with_nonempty_buffer(self):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)
        tr._buffer = [b'da', b'ta']
        tr.pause_writing()
        self.assertFalse(tr._writing)
        self.loop.remove_writer.assert_called_with(5)
        self.assertEqual([b'da', b'ta'], tr._buffer)

        tr.resume_writing()
        self.assertTrue(tr._writing)
        self.loop.add_writer.assert_called_with(5, tr._write_ready)
        self.assertEqual([b'da', b'ta'], tr._buffer)
Esempio n. 55
0
    def test__write_ready_closing(self, m_fcntl, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe)
        tr.register_protocol(self.protocol)

        tr._closing = True
        tr._buffer = [b'da', b'ta']
        m_write.return_value = 4
        tr._write_ready()
        m_write.assert_called_with(5, b'data')
        self.loop.remove_writer.assert_called_with(5)
        self.assertEqual([], tr._buffer)
        self.protocol.connection_lost.assert_called_with(None)
        self.pipe.close.assert_called_with()
Esempio n. 56
0
    def test__write_ready_closing(self, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        tr._closing = True
        tr._buffer = [b'da', b'ta']
        m_write.return_value = 4
        tr._write_ready()
        m_write.assert_called_with(5, b'data')
        self.loop.remove_writer.assert_called_with(5)
        self.loop.remove_reader.assert_called_with(5)
        self.assertEqual([], tr._buffer)
        self.protocol.connection_lost.assert_called_with(None)
        self.pipe.close.assert_called_with()
Esempio n. 57
0
    def test__call_connection_lost_with_err(self):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        err = OSError()
        tr._call_connection_lost(err)
        self.protocol.connection_lost.assert_called_with(err)
        self.pipe.close.assert_called_with()

        self.assertIsNone(tr._protocol)
        self.assertEqual(2, sys.getrefcount(self.protocol),
                         pprint.pformat(gc.get_referrers(self.protocol)))
        self.assertIsNone(tr._loop)
        self.assertEqual(2, sys.getrefcount(self.loop),
                         pprint.pformat(gc.get_referrers(self.loop)))
Esempio n. 58
0
    def test_abort(self, m_write):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        self.loop.add_writer(5, tr._write_ready)
        self.loop.add_reader(5, tr._read_ready)
        tr._buffer = [b'da', b'ta']
        tr.abort()
        self.assertFalse(m_write.called)
        self.assertFalse(self.loop.readers)
        self.assertFalse(self.loop.writers)
        self.assertEqual([], tr._buffer)
        self.assertTrue(tr._closing)
        test_utils.run_briefly(self.loop)
        self.protocol.connection_lost.assert_called_with(None)
Esempio n. 59
0
    def test_abort(self, m_write):
        with tempfile.TemporaryFile() as f:
            fileno = f.fileno()
            tr = unix_events._UnixWritePipeTransport(self.loop, f,
                                                     self.protocol)

            tr._buffer = [b'da', b'ta']
            tr.abort()
            self.assertFalse(m_write.called)
            self.loop.remove_writer.assert_called_with(fileno)
            self.assertFalse(self.loop.remove_reader.called)
            self.assertEqual([], tr._buffer)
            self.assertTrue(tr._closing)
            self.loop.call_soon.assert_called_with(tr._call_connection_lost,
                                                   None)
Esempio n. 60
0
    def test__write_ready_err(self, m_write, m_logexc):
        tr = unix_events._UnixWritePipeTransport(self.loop, self.pipe,
                                                 self.protocol)

        tr._buffer = [b'da', b'ta']
        m_write.side_effect = err = OSError()
        tr._write_ready()
        m_write.assert_called_with(5, b'data')
        self.loop.remove_writer.assert_called_with(5)
        self.loop.remove_reader.assert_called_with(5)
        self.assertEqual([], tr._buffer)
        self.assertTrue(tr._closing)
        self.loop.call_soon.assert_called_with(tr._call_connection_lost, err)
        m_logexc.assert_called_with('Fatal error for %s', tr)
        self.assertEqual(1, tr._conn_lost)