From d3e32289210448e7ae070b77949fa48dca2b98b6 Mon Sep 17 00:00:00 2001 From: Xavier-Do Date: Tue, 17 Jan 2023 16:58:05 +0100 Subject: [PATCH] [FIX] runbot: get_module remove prefix Since removeprefix was not available in ubuntu 20.04, a easier alternative using rebase was used. The initial assumption was that the prefix would look like `odoo/addons/` and won't be in the filename. When the repo is enterprise, the prefix is `enterprise/` meaning that module name ending with `enterprise` will be truncated `repo._get_module('enterprise/mail_enterprise/static/src/widgets/form_renderer/form_renderer.js')` will output `mail_static` --- runbot/models/repo.py | 2 +- runbot/tests/test_build_config_step.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/runbot/models/repo.py b/runbot/models/repo.py index b8361609..e2659121 100644 --- a/runbot/models/repo.py +++ b/runbot/models/repo.py @@ -561,7 +561,7 @@ class Repo(models.Model): for addons_path in (self.addons_paths or '').split(','): base_path = f'{self.name}/{addons_path}' if file.startswith(base_path): - return file.replace(base_path, '').strip('/').split('/')[0] + return file[len(base_path):].strip('/').split('/')[0] class RefTime(models.Model): diff --git a/runbot/tests/test_build_config_step.py b/runbot/tests/test_build_config_step.py index 702eacba..1053a098 100644 --- a/runbot/tests/test_build_config_step.py +++ b/runbot/tests/test_build_config_step.py @@ -108,7 +108,9 @@ class TestCodeowner(TestBuildConfigStepCommon): self.assertEqual(self.repo_server.addons_paths, 'addons,core/addons') self.assertEqual('module1', self.repo_server._get_module('server/core/addons/module1/some/file.py')) self.assertEqual('module1', self.repo_server._get_module('server/addons/module1/some/file.py')) + self.assertEqual('module_addons', self.repo_addons._get_module('addons/module_addons/some/file.py')) self.assertEqual(None, self.repo_server._get_module('server/core/module1/some/file.py')) + self.assertEqual(None, self.repo_server._get_module('server/core/module/some/file.py')) def test_codeowner_regex_multiple(self): self.diff = 'file.js\nfile.py\nfile.xml'