Skip to content

Commit ba936af

Browse files
committed
feat: add test download via /binary_content via dispatch - issue2551068
CI showed I missed a code path. Dispatch and format_dispatch_output did not have a test case though the /binary_content code path. Added this test and verifies the data, content-type, lack of ETag header, presence of header to prevent browser sniffing.
1 parent 2dccdf2 commit ba936af

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

test/rest_common.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3052,6 +3052,28 @@ def testDispatch(self):
30523052

30533053
del(self.headers)
30543054

3055+
# TEST #11
3056+
# GET: test that /binary_content can be downloaded
3057+
form = cgi.FieldStorage()
3058+
3059+
self.server.client.env.update({'REQUEST_METHOD': 'GET'})
3060+
3061+
headers={"accept": "*/*" }
3062+
self.headers=headers
3063+
self.server.client.request.headers.get=self.get_header
3064+
results = self.server.dispatch('GET',
3065+
"/rest/data/file/1/binary_content", form)
3066+
3067+
self.assertEqual(results, b'PNG\x01abcdefghi\njklmnop')
3068+
self.assertEqual(self.server.client.additional_headers['Content-Type'],
3069+
'image/png')
3070+
self.assertNotIn("ETag", self.server.client.additional_headers)
3071+
self.assertEqual(
3072+
self.server.client.additional_headers["X-Content-Type-Options"],
3073+
"nosniff")
3074+
3075+
print("11: " + b2s(results))
3076+
30553077
def testAcceptHeaderParsing(self):
30563078
self.server.client.env['REQUEST_METHOD'] = 'GET'
30573079

0 commit comments

Comments
 (0)