From db6c8968a2ca0bc5d5f04c4c51c8f2e6de1c93b5 Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Tue, 5 Dec 2023 21:22:52 +0100 Subject: [PATCH] [REF] bi_sql_editor : Make test independant [FIX] bi_sql_editor : allow to pass default values in copy() function --- bi_sql_editor/models/bi_sql_view.py | 10 +++--- bi_sql_editor/tests/test_bi_sql_view.py | 44 +++++++++++++++---------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/bi_sql_editor/models/bi_sql_view.py b/bi_sql_editor/models/bi_sql_view.py index d13eaf659..5183f3ac7 100644 --- a/bi_sql_editor/models/bi_sql_view.py +++ b/bi_sql_editor/models/bi_sql_view.py @@ -263,12 +263,10 @@ class BiSQLView(models.Model): def copy(self, default=None): self.ensure_one() default = dict(default or {}) - default.update( - { - "name": _("%s (Copy)") % self.name, - "technical_name": "%s_copy" % self.technical_name, - } - ) + if "name" not in default: + default["name"] = _("%s (Copy)") % self.name + if "technical_name" not in default: + default["technical_name"] = f"{self.technical_name}_copy" return super().copy(default=default) # Action Section diff --git a/bi_sql_editor/tests/test_bi_sql_view.py b/bi_sql_editor/tests/test_bi_sql_view.py index e7285e4fc..5eeb81a05 100644 --- a/bi_sql_editor/tests/test_bi_sql_view.py +++ b/bi_sql_editor/tests/test_bi_sql_view.py @@ -29,20 +29,21 @@ class TestBiSqlViewEditor(SingleTransactionCase): return cls.demo_user def test_process_view(self): - self.assertEqual(self.view.state, "draft") - self.view.button_validate_sql_expression() - self.assertEqual(self.view.state, "sql_valid") - self.view.button_create_sql_view_and_model() - self.assertEqual(self.view.state, "model_valid") - self.view.button_create_ui() - self.assertEqual(self.view.state, "ui_valid") - self.view.button_update_model_access() - self.assertEqual(self.view.has_group_changed, False) + copy_view = self.view.copy(default={"technical_name": "test_process_view"}) + self.assertEqual(copy_view.state, "draft") + copy_view.button_validate_sql_expression() + self.assertEqual(copy_view.state, "sql_valid") + copy_view.button_create_sql_view_and_model() + self.assertEqual(copy_view.state, "model_valid") + copy_view.button_create_ui() + self.assertEqual(copy_view.state, "ui_valid") + copy_view.button_update_model_access() + self.assertEqual(copy_view.has_group_changed, False) # Check that cron works correctly - self.view.cron_id.method_direct_trigger() + copy_view.cron_id.method_direct_trigger() def test_copy(self): - copy_view = self.view.copy() + copy_view = self.view.copy(default={"technical_name": "test_copy"}) self.assertEqual(copy_view.name, f"{self.view.name} (Copy)") def test_security(self): @@ -58,16 +59,25 @@ class TestBiSqlViewEditor(SingleTransactionCase): ) def test_unlink(self): - view_name = self.view.name - self.assertEqual(self.view.state, "ui_valid") + copy_view = self.view.copy( + default={ + "name": "Test Unlink", + "technical_name": "test_unlink", + } + ) + view_name = copy_view.name + copy_view.button_validate_sql_expression() + copy_view.button_create_sql_view_and_model() + copy_view.button_create_ui() + self.assertEqual(copy_view.state, "ui_valid") with self.assertRaises(UserError): - self.view.unlink() - self.view.button_set_draft() + copy_view.unlink() + copy_view.button_set_draft() self.assertNotEqual( - self.view.cron_id, + copy_view.cron_id, False, "Set to draft materialized view should not unlink cron", ) - self.view.unlink() + copy_view.unlink() res = self.bi_sql_view.search([("name", "=", view_name)]) self.assertEqual(len(res), 0, "View not deleted")