def test_read_chunk_truncated_during_payload(self): """Construct a chunk and truncate the last 3 bytes of the payload ([:-3]).""" truncated_chunk = NailgunProtocol.construct_chunk(ChunkType.STDOUT, self.TEST_OUTPUT)[:-3] self.server_sock.sendall(truncated_chunk) self.server_sock.close() with self.assertRaises(NailgunProtocol.TruncatedPayloadError): NailgunProtocol.read_chunk(self.client_sock)
def test_read_chunk_truncated_before_payload(self): """Construct a chunk and send exactly the header (first 5 bytes) and truncate the remainder.""" truncated_chunk = NailgunProtocol.construct_chunk(ChunkType.STDOUT, self.TEST_OUTPUT)[:5] self.server_sock.sendall(truncated_chunk) self.server_sock.close() with self.assertRaises(NailgunProtocol.TruncatedPayloadError): NailgunProtocol.read_chunk(self.client_sock)
def test_read_chunk_truncated_during_header(self): """Construct a chunk and truncate to the first 3 bytes ([:3]), an incomplete header.""" truncated_chunk = NailgunProtocol.construct_chunk(ChunkType.STDOUT, self.TEST_OUTPUT)[:3] self.server_sock.sendall(truncated_chunk) self.server_sock.close() with self.assertRaises(NailgunProtocol.TruncatedHeaderError): NailgunProtocol.read_chunk(self.client_sock)
def test_construct_chunk_bytes(self): NailgunProtocol.construct_chunk(ChunkType.STDOUT, b'yes')
def test_construct_chunk_unicode(self): NailgunProtocol.construct_chunk(ChunkType.STDOUT, u'Ø')
def test_construct_chunk(self): with self.assertRaises(TypeError): NailgunProtocol.construct_chunk(ChunkType.STDOUT, 1111)