Mercurial > p > roundup > code
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 |
