server-tools/database_cleanup/tests/test_purge_columns.py

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