[MIG] add tests for purge fields
parent
603aeb4923
commit
3a61b561fc
|
@ -6,6 +6,7 @@ from . import test_create_indexes
|
||||||
from . import test_identifier_adapter
|
from . import test_identifier_adapter
|
||||||
from . import test_purge_columns
|
from . import test_purge_columns
|
||||||
from . import test_purge_data
|
from . import test_purge_data
|
||||||
|
from . import test_purge_fields
|
||||||
from . import test_purge_menus
|
from . import test_purge_menus
|
||||||
from . import test_purge_models
|
from . import test_purge_models
|
||||||
from . import test_purge_modules
|
from . import test_purge_modules
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
# Copyright 2021 Camptocamp SA
|
||||||
|
# Copyright 2024 360ERP (https://www.360erp.com)
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
|
|
||||||
|
from odoo.tests.common import tagged
|
||||||
|
|
||||||
|
from .common import Common, environment
|
||||||
|
|
||||||
|
|
||||||
|
# Use post_install to get all models loaded more info: odoo/odoo#13458
|
||||||
|
@tagged("post_install", "-at_install")
|
||||||
|
class TestCleanupPurgeFields(Common):
|
||||||
|
def setUp(self):
|
||||||
|
super().setUp()
|
||||||
|
with environment() as env:
|
||||||
|
|
||||||
|
# create a nonexistent model
|
||||||
|
self.model_name = "x_database.cleanup.test.field.model"
|
||||||
|
self.model_values = {
|
||||||
|
"name": "Database cleanup test field-model",
|
||||||
|
"model": self.model_name,
|
||||||
|
}
|
||||||
|
self.model = env["ir.model"].create(self.model_values)
|
||||||
|
env.cr.execute(
|
||||||
|
"insert into ir_attachment (name, res_model, res_id, type) values "
|
||||||
|
"('test attachment', %s, 42, 'binary')",
|
||||||
|
[self.model_name],
|
||||||
|
)
|
||||||
|
|
||||||
|
# create a nonexistent field
|
||||||
|
self.field_name = "x_database_cleanup_test_field"
|
||||||
|
self.field_values = {
|
||||||
|
"name": self.field_name,
|
||||||
|
"model_id": self.model.id,
|
||||||
|
"field_description": "Database cleanup test field",
|
||||||
|
"ttype": "boolean",
|
||||||
|
}
|
||||||
|
self.field = env["ir.model.fields"].create(self.field_values)
|
||||||
|
|
||||||
|
env.cr.execute(
|
||||||
|
"update ir_model_fields set state = 'base' where id = %s ",
|
||||||
|
[self.field.id],
|
||||||
|
)
|
||||||
|
env.registry.models[self.model_name]._fields.pop(self.field_name)
|
||||||
|
|
||||||
|
def test_empty_field(self):
|
||||||
|
with environment() as env:
|
||||||
|
wizard = env["cleanup.purge.wizard.field"].create({})
|
||||||
|
wizard.purge_all()
|
||||||
|
# must be removed by the wizard
|
||||||
|
self.assertFalse(
|
||||||
|
env["ir.model.fields"].search(
|
||||||
|
[
|
||||||
|
("name", "=", self.field_name),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
)
|
Loading…
Reference in New Issue