Odoo18-Base/odoo/addons/test_http/tests/test_web_server.py

47 lines
1.8 KiB
Python
Raw Permalink Normal View History

2025-01-06 10:57:38 +07:00
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from os import getenv
from odoo.tests import tagged
from . import test_static
# Small configuration to run the tests against a web server.
# WEB_SERVER_URL=http://localhost:80 odoo-bin -i test_http --test-tags webserver
WEB_SERVER_URL = getenv('WEB_SERVER_URL', 'http://localhost:80')
@tagged('webserver', '-standard', '-at_install')
class TestHttpStaticWebServer(test_static.TestHttpStatic, test_static.TestHttpStaticCache):
allow_inherited_tests_method = True
@classmethod
def base_url(cls):
return WEB_SERVER_URL
def assertDownloadGizeh(self, url, x_sendfile=None, assert_filename='gizeh.png'):
# X-Sendfile and X-Accel-Redirect http response headers should
# have been consummed by the web server. We should get the
# ultimate response which holds the file.
return super().assertDownloadGizeh(
url,
x_sendfile=False,
assert_filename=assert_filename
)
def assertDownload(
self, url, headers, assert_status_code, assert_headers, assert_content=None
):
assert_headers.pop('Content-Length', None) # nginx compresses on-the-fly
if assert_headers.pop('X-Sendfile', None):
assert_headers.pop('X-Accel-Redirect', None)
assert_content = None
return super().assertDownload(
url, headers, assert_status_code, assert_headers, assert_content)
def test_static_cache3_private(self):
super().test_static_cache3_private()
# Extra step: verify that there is no cache leak. Run this test
# with squid, a web server with http caching capabilities.
self.authenticate(None, None)
self.assertDownloadPlaceholder('/web/image/test_http.gizeh_png')