# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. import re from flectra import tools from flectra.modules.module import get_module_resource from flectra.tests.common import TransactionCase class TestQweb(TransactionCase): def _load(self, module, *args): tools.convert_file(self.cr, 'website', get_module_resource(module, *args), {}, 'init', False, 'test', self.registry._assertion_report) def test_qweb_cdn(self): self._load('website', 'tests', 'template_qweb_test.xml') website = self.env['website'].browse(1) 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('website.test_template', {"user": demo}, website_id= website.id) html = html.strip().decode('utf8') html = re.sub(r'\?unique=[^"]+', '', html).encode('utf8') attachments = demo_env['ir.attachment'].search([('url', '=like', '/web/content/%-%/website.test_bundle.%')]) self.assertEqual(len(attachments), 2) self.assertEqual(html, (""" x x xxx
span
""" % { "js": attachments[0].url, "css": attachments[1].url, "user_id": demo.id, }).encode('utf8'))