[REF] bi_sql_editor : Make test independant

[FIX] bi_sql_editor : allow to pass default values in copy() function
This commit is contained in:
Sylvain LE GAL
2023-12-05 21:22:52 +01:00
committed by thien
parent 0612486f91
commit db6c8968a2
2 changed files with 31 additions and 23 deletions

View File

@@ -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

View File

@@ -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")