Esempio n. 1
0
class NailgunSessionTest(unittest.TestCase):
    def setUp(self):
        self.client_socket, self.ng_socket = socket.socketpair()
        self.outfile = FakeWritableFile()
        self.errfile = FakeWritableFile()
        self.ng_session = NailgunSession(self.client_socket, None,
                                         self.outfile, self.errfile)

    def test_socket_closed_before_header(self):
        # Send some simple messages to exercise the loop first, to make
        # sure we're not always erroring.
        stdout_header = struct.pack(NailgunSession.HEADER_FMT, 6, b'1')
        self.ng_socket.send(stdout_header)
        self.ng_socket.send(b'foozle')
        exit_header = struct.pack(NailgunSession.HEADER_FMT, 3, b'X')
        self.ng_socket.send(exit_header)
        self.ng_socket.send(b'123')
        self.assertEquals(self.ng_session._read_response(), 123)
        self.assertEquals(self.outfile.content, b'foozle')

        self.ng_socket.close()
        with self.assertRaises(NailgunSession.TruncatedHeaderError):
            self.ng_session._read_response()

    def test_socket_closed_during_header(self):
        stdout_header = struct.pack(NailgunSession.HEADER_FMT, 6, b'1')
        self.ng_socket.send(stdout_header[:2])

        self.ng_socket.close()
        with self.assertRaises(NailgunSession.TruncatedHeaderError):
            self.ng_session._read_response()

    def test_socket_closed_before_payload(self):
        stdout_header = struct.pack(NailgunSession.HEADER_FMT, 6, b'1')
        self.ng_socket.send(stdout_header)

        self.ng_socket.close()
        with self.assertRaises(NailgunSession.TruncatedPayloadError):
            self.ng_session._read_response()

    def test_socket_closed_during_payload(self):
        stdout_header = struct.pack(NailgunSession.HEADER_FMT, 6, b'1')
        self.ng_socket.send(stdout_header)
        self.ng_socket.send(b'foo')

        self.ng_socket.close()
        with self.assertRaises(NailgunSession.TruncatedPayloadError):
            self.ng_session._read_response()
Esempio n. 2
0
class NailgunSessionTest(unittest.TestCase):
  def setUp(self):
    self.client_socket, self.ng_socket = socket.socketpair()
    self.outfile = FakeWritableFile()
    self.errfile = FakeWritableFile()
    self.ng_session = NailgunSession(self.client_socket, None, self.outfile, self.errfile)

  def test_socket_closed_before_header(self):
    # Send some simple messages to exercise the loop first, to make
    # sure we're not always erroring.
    stdout_header = struct.pack(NailgunSession.HEADER_FMT, 6, b'1')
    self.ng_socket.send(stdout_header)
    self.ng_socket.send(b'foozle')
    exit_header = struct.pack(NailgunSession.HEADER_FMT, 3, b'X')
    self.ng_socket.send(exit_header)
    self.ng_socket.send(b'123')
    self.assertEquals(self.ng_session._read_response(), 123)
    self.assertEquals(self.outfile.content, b'foozle')

    self.ng_socket.close()
    with self.assertRaises(NailgunSession.TruncatedHeaderError):
      self.ng_session._read_response()

  def test_socket_closed_during_header(self):
    stdout_header = struct.pack(NailgunSession.HEADER_FMT, 6, b'1')
    self.ng_socket.send(stdout_header[:2])

    self.ng_socket.close()
    with self.assertRaises(NailgunSession.TruncatedHeaderError):
      self.ng_session._read_response()

  def test_socket_closed_before_payload(self):
    stdout_header = struct.pack(NailgunSession.HEADER_FMT, 6, b'1')
    self.ng_socket.send(stdout_header)

    self.ng_socket.close()
    with self.assertRaises(NailgunSession.TruncatedPayloadError):
      self.ng_session._read_response()

  def test_socket_closed_during_payload(self):
    stdout_header = struct.pack(NailgunSession.HEADER_FMT, 6, b'1')
    self.ng_socket.send(stdout_header)
    self.ng_socket.send(b'foo')

    self.ng_socket.close()
    with self.assertRaises(NailgunSession.TruncatedPayloadError):
      self.ng_session._read_response()
Esempio n. 3
0
 def setUp(self):
     self.client_socket, self.ng_socket = socket.socketpair()
     self.outfile = FakeWritableFile()
     self.errfile = FakeWritableFile()
     self.ng_session = NailgunSession(self.client_socket, None,
                                      self.outfile, self.errfile)
Esempio n. 4
0
 def setUp(self):
   self.client_socket, self.ng_socket = socket.socketpair()
   self.outfile = FakeWritableFile()
   self.errfile = FakeWritableFile()
   self.ng_session = NailgunSession(self.client_socket, None, self.outfile, self.errfile)