diff --git a/addons/website/tests/test_assets.py b/addons/website/tests/test_assets.py index e115d7a7325..a3501886c4b 100644 --- a/addons/website/tests/test_assets.py +++ b/addons/website/tests/test_assets.py @@ -252,7 +252,12 @@ class TestWebAssets(odoo.tests.HttpCase): ) # generate base assets - self.assertEqual(self.url_open(base_url, allow_redirects=False).status_code, 200) + with self.assertLogs() as logs: + self.assertEqual(self.url_open(base_url, allow_redirects=False).status_code, 200) + self.assertEqual( + f'Found a similar attachment for /web/assets/{unique}/web.assets_frontend.min.js, copying from /web/assets/{website_id}/{unique}/web.assets_frontend.min.js', + logs.records[0].message, + 'The attachment was expected to be linked to an existing one') self.assertEqual( self.env['ir.attachment'].search([('url', '=like', '%web.assets_frontend.min.js')]).mapped('url'), [base_url_versioned, website_url_versioned], diff --git a/odoo/addons/base/models/assetsbundle.py b/odoo/addons/base/models/assetsbundle.py index a86ebe167c8..9f02d9e62cd 100644 --- a/odoo/addons/base/models/assetsbundle.py +++ b/odoo/addons/base/models/assetsbundle.py @@ -240,18 +240,14 @@ class AssetsBundle(object): fallback_url_pattern = self.get_asset_url( unique=unique, extension=extension, + ignore_params=True, ) - self.env.cr.execute(query, [SUPERUSER_ID, fallback_url_pattern]) similar_attachment_ids = [r[0] for r in self.env.cr.fetchall()] if similar_attachment_ids: similar = self.env['ir.attachment'].sudo().browse(similar_attachment_ids) _logger.info('Found a similar attachment for %s, copying from %s', url_pattern, similar.url) - url = self.get_asset_url( - unique=unique, - extension=extension, - ignore_params=True, - ) + url = url_pattern values = { 'name': similar.name, 'mimetype': similar.mimetype, @@ -264,7 +260,7 @@ class AssetsBundle(object): } attachment = self.env['ir.attachment'].with_user(SUPERUSER_ID).create(values) attachment_id = attachment.id - self.clean_attachments(extension) + self._clean_attachments(extension, url) return self.env['ir.attachment'].sudo().browse(attachment_id)