Exemple #1
0
 def decode_response(self, response, limit=None, readlength=1024):
     dec = xmlrpc.DefusedGzipDecodedResponse(response, limit)
     acc = []
     while True:
         data = dec.read(readlength)
         if not data:
             break
         acc.append(data)
     return b"".join(acc)
Exemple #2
0
    def test_defused_gzip_response(self):
        clen = len(self.get_gzipped(4096).getvalue())

        response = self.get_gzipped(4096)
        data = self.decode_response(response)
        self.assertEqual(data, b"d" * 4096)

        with self.assertRaises(ValueError):
            response = self.get_gzipped(4096)
            xmlrpc.DefusedGzipDecodedResponse(response, clen - 1)

        with self.assertRaises(ValueError):
            response = self.get_gzipped(4096)
            self.decode_response(response, 4095)

        with self.assertRaises(ValueError):
            response = self.get_gzipped(4096)
            self.decode_response(response, 4095, 8192)