From e3dfaf0bf2c3ca568d6817ffb1db60632e5ce3ff Mon Sep 17 00:00:00 2001 From: Zhang Jingqiang Date: Sun, 17 Nov 2024 09:37:50 +0800 Subject: [PATCH] g3proxy: add more post/put testcase --- g3proxy/ci/python3+curl/test_httpbin.py | 27 ++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/g3proxy/ci/python3+curl/test_httpbin.py b/g3proxy/ci/python3+curl/test_httpbin.py index b9c2723f2..59d7634ce 100644 --- a/g3proxy/ci/python3+curl/test_httpbin.py +++ b/g3proxy/ci/python3+curl/test_httpbin.py @@ -5,6 +5,7 @@ import unittest import base64 from io import BytesIO +from urllib.parse import urlencode import pycurl @@ -72,7 +73,7 @@ def test_base64_decode(self): self.assertEqual(self.c.getinfo(pycurl.RESPONSE_CODE), 200) self.assertEqual(self.buffer.getvalue(), b"HTTPBIN is awesome") - def test_post_continue(self): + def test_post_small(self): data = "Content to post" self.set_url_and_request_target('/post') @@ -80,10 +81,34 @@ def test_post_continue(self): self.c.perform() self.assertEqual(self.c.getinfo(pycurl.RESPONSE_CODE), 200) + # add Expect and try again self.c.setopt(pycurl.HTTPHEADER, ['Expect: 100-continue']) self.c.perform() self.assertEqual(self.c.getinfo(pycurl.RESPONSE_CODE), 200) + def test_post_large(self): + post_data = {'data': "Content to post" * 1024 * 100} + post_fields = urlencode(post_data) + + self.set_url_and_request_target('/post') + self.c.setopt(pycurl.POSTFIELDS, post_fields) + self.c.perform() + self.assertEqual(self.c.getinfo(pycurl.RESPONSE_CODE), 200) + + # disable Expect and try again + self.c.setopt(pycurl.HTTPHEADER, ['Expect:']) + self.c.perform() + self.assertEqual(self.c.getinfo(pycurl.RESPONSE_CODE), 200) + + def test_put_file(self): + self.set_url_and_request_target('/put') + self.c.setopt(pycurl.UPLOAD, 1) + file = open(__file__) + self.c.setopt(pycurl.READDATA, file) + self.c.perform() + self.assertEqual(self.c.getinfo(pycurl.RESPONSE_CODE), 200) + file.close() + if __name__ == '__main__': parser = argparse.ArgumentParser()