@@ -8,6 +8,13 @@ def test_ping_endpoint(oxapy_server):
88 assert res .json ()["message" ] == "pong"
99 assert "application/json" in res .headers ["Content-Type" ]
1010
11+ body = {"foo" : "bar" }
12+ res = requests .post (f"{ oxapy_server } /api/v1/ping" , json = body )
13+ assert res .status_code == 200
14+ assert res .json ()["message" ] == "pong"
15+ assert res .json ()["body" ] == body
16+ assert "application/json" in res .headers ["Content-Type" ]
17+
1118
1219def test_echo_endpoint (oxapy_server ):
1320 payload = {"msg" : "hello" }
@@ -71,6 +78,31 @@ def test_form(oxapy_server):
7178 assert res .json () == form_data
7279
7380
81+ def test_urlencoded_form (oxapy_server ):
82+ form_data = {"username" : "John Does" , "email" : "johndoes@email.com" }
83+ res = requests .post (
84+ f"{ oxapy_server } /api/v1/form" ,
85+ data = form_data ,
86+ headers = {"Content-Type" : "application/x-www-form-urlencoded" },
87+ )
88+ assert res .status_code == 200
89+ assert res .json () == form_data
90+
91+
92+ def test_multipart_file_upload (oxapy_server ):
93+ res = requests .post (
94+ f"{ oxapy_server } /api/v1/upload" ,
95+ files = {"document" : ("hello.txt" , b"Hello, World!" , "text/plain" )},
96+ data = {"description" : "test file" },
97+ )
98+ assert res .status_code == 200
99+ data = res .json ()
100+ assert data ["files" ]["document" ]["filename" ] == "hello.txt"
101+ assert data ["files" ]["document" ]["content_type" ] == "text/plain"
102+ assert data ["files" ]["document" ]["size" ] == 13
103+ assert data ["form" ]["description" ] == "test file"
104+
105+
74106def test_protected_route_unauthorized (oxapy_server ):
75107 res = requests .get (f"{ oxapy_server } /api/v1/protected" )
76108 assert res .status_code == 401
0 commit comments