57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
# 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),
|
|
]
|
|
)
|
|
)
|