comparison test/rest_common.py @ 8182:5fcc1a379564

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.
author John Rouillard <rouilj@ieee.org>
date Sun, 08 Dec 2024 18:26:09 -0500
parents d02ce1d14acd
children 32aaf5dc562b
comparison
equal deleted inserted replaced
8181:0a6ca45c53b4 8182:5fcc1a379564
3050 "/rest/notthere/", self.empty_form) 3050 "/rest/notthere/", self.empty_form)
3051 self.assertEqual(self.server.client.response_code, 404) 3051 self.assertEqual(self.server.client.response_code, 404)
3052 3052
3053 del(self.headers) 3053 del(self.headers)
3054 3054
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
3055 def testAcceptHeaderParsing(self): 3077 def testAcceptHeaderParsing(self):
3056 self.server.client.env['REQUEST_METHOD'] = 'GET' 3078 self.server.client.env['REQUEST_METHOD'] = 'GET'
3057 3079
3058 # TEST #1 3080 # TEST #1
3059 # json highest priority 3081 # json highest priority

Roundup Issue Tracker: http://roundup-tracker.org/