# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. from lxml import etree import re from odoo import tools from odoo.addons.base.tests.common import TransactionCaseWithUserDemo from odoo.addons.website.tools import MockRequest class TestQweb(TransactionCaseWithUserDemo): def _load(self, module, filepath): tools.convert_file( self.env, module, filepath, {}, 'init', False, 'test' ) def test_qweb_cdn(self): self._load('test_website', 'tests/template_qweb_test.xml') website = self.env.ref('website.default_website') website.write({ "cdn_activated": True, "cdn_url": "http://test.cdn" }) demo = self.env['res.users'].search([('login', '=', 'demo')])[0] demo.write({"signature": ''' span '''}) demo_env = self.env(user=demo) html = demo_env['ir.qweb']._render('test_website.test_template', {"user": demo}, website_id=website.id) asset_bundle_xmlid = 'test_website.test_bundle' qweb = self.env['ir.qweb'] bundle = qweb._get_asset_bundle(asset_bundle_xmlid, css=True, js=True, assets_params={'website_id': website.id}) asset_version_js = bundle.get_version('js') asset_version_css = bundle.get_version('css') css_url, js_url = bundle.get_links()[-2:] html = html.strip() html = re.sub(r'\?unique=[^"]+', '', html).encode('utf8') format_data = { "css": css_url, "js": js_url, "user_id": demo.id, "filename": "Marc%20Demo", "alt": "Marc Demo", "asset_xmlid": asset_bundle_xmlid, "asset_version_css": asset_version_css, "asset_version_js": asset_version_js, } self.assertHTMLEqual(html, (""" x x xxx
span
%(alt)s
""" % format_data).encode('utf8')) with MockRequest(self.env, website=website): html = demo_env['ir.qweb']._render('test_website.test_template_tatt_qweb', {}, website_id=website.id) self.assertHTMLEqual(html, (""" 1 2 3 4 5 """))