48 lines
1.7 KiB
Python
48 lines
1.7 KiB
Python
# Copyright 2021 Camptocamp SA
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
from psycopg2 import ProgrammingError
|
|
|
|
from odoo.tests.common import tagged
|
|
from odoo.tools import mute_logger
|
|
|
|
from .common import Common, environment
|
|
|
|
|
|
# Use post_install to get all models loaded more info: odoo/odoo#13458
|
|
@tagged("post_install", "-at_install")
|
|
class TestCleanupPurgeLineColumn(Common):
|
|
def setUp(self):
|
|
super().setUp()
|
|
with environment() as env:
|
|
# create an orphaned column
|
|
env.cr.execute(
|
|
"alter table res_partner add column database_cleanup_test int"
|
|
)
|
|
|
|
def test_empty_column(self):
|
|
with environment() as env:
|
|
# We need use a model that is not blocked (Avoid use res.users)
|
|
partner_model = env["ir.model"].search(
|
|
[("model", "=", "res.partner")], limit=1
|
|
)
|
|
wizard = env["cleanup.purge.wizard.column"].create(
|
|
{
|
|
"purge_line_ids": [
|
|
(
|
|
0,
|
|
0,
|
|
{
|
|
"model_id": partner_model.id,
|
|
"name": "database_cleanup_test",
|
|
},
|
|
)
|
|
]
|
|
}
|
|
)
|
|
wizard.purge_all()
|
|
# must be removed by the wizard
|
|
with self.assertRaises(ProgrammingError):
|
|
with env.registry.cursor() as cr:
|
|
with mute_logger("odoo.sql_db"):
|
|
cr.execute("select database_cleanup_test from res_partner")
|