def test_rd_suffix_mixed(self): self.server.send(b'abcdefghijklmnopqrstuvwxyz') self.assertEqual(rd(b'c', b'e'), b'abc') self.assertEqual(rd(b'i', b'e'), b'de') self.assertEqual(rd(b'jq', b'gh'), b'fgh') self.assertEqual(rd(5, b'k'), b'ijk') self.assertEqual(rd(5, b'u'), b'lmnop') self.assertEqual(rd(3, 1), b'q') self.assertEqual(rd(99, re.compile(b's')), b'rs') self.assertEqual(rd(1, b'tu', re.compile(b'uv')), b't') self.assertEqual(rd(3, b'v', re.compile(b'y')), b'uv') self.assertEqual(rd(5, b'z', re.compile(b'x')), b'wx')
def test_rd_output_echo_noescape(self): self.sock.escape = False instr = b'\x00 \t\nabc123\x80\xff' self.server.send(instr) res = rd(len(instr)) output = self.stdout.read() self.assertEqual(res, instr) self.assertEqual(output, _bytes_to_text(instr))
def test_rd_oserror(self): self.sock.sock.setblocking(0) self.server.send(b'test') with self.assertRaises(rxpwn.PartialReadError) as ecm: rd(b'\n') self.assertEqual(ecm.exception.data, b'test')
def test_rd_partial(self): self.server.send(b'test') self.server.shutdown(socket.SHUT_WR) with self.assertRaises(rxpwn.PartialReadError) as ecm: rd(b'\n') self.assertEqual(ecm.exception.data, b'test')
def test_rd_suffix_re(self): self.server.send(b'abcdefghi') self.assertEqual(rd(re.compile(b'[cd]')), b'abc') self.assertEqual(rd(re.compile(b'.')), b'd') self.assertEqual(rd(re.compile(b'i')), b'efghi')
def test_rd_suffix_bytes(self): self.server.send(b'abcdefghi') self.assertEqual(rd(b'c'), b'abc') self.assertEqual(rd(b'ef'), b'def') self.assertEqual(rd(bytearray(b'i')), b'ghi')
def test_rd_suffix_int(self): self.server.send(b'abcdefghi') self.assertEqual(rd(3), b'abc') self.assertEqual(rd(4), b'defg')