[FIX] purge uninstalled uninstallable modules instead of deleting
[FIX] database_cleanup reloads the registry which has weird side effects during testing. Take care database_cleanup's tests don't mess up the following testspull/2684/head
parent
6e27c304dc
commit
180e598e2a
|
@ -69,7 +69,9 @@ class CleanupPurgeWizardModule(models.TransientModel):
|
||||||
if get_module_path(module.name):
|
if get_module_path(module.name):
|
||||||
continue
|
continue
|
||||||
if module.state == 'uninstalled':
|
if module.state == 'uninstalled':
|
||||||
module.unlink()
|
self.env['cleanup.purge.line.module'].create({
|
||||||
|
'name': module.name,
|
||||||
|
}).purge()
|
||||||
continue
|
continue
|
||||||
res.append((0, 0, {'name': module.name}))
|
res.append((0, 0, {'name': module.name}))
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
# © 2016 Therp BV <http://therp.nl>
|
# © 2016 Therp BV <http://therp.nl>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
from psycopg2 import ProgrammingError
|
from psycopg2 import ProgrammingError
|
||||||
|
from openerp.modules.registry import RegistryManager
|
||||||
from openerp.tools import config
|
from openerp.tools import config
|
||||||
from openerp.tests.common import TransactionCase
|
from openerp.tests.common import TransactionCase
|
||||||
|
|
||||||
|
@ -57,6 +58,9 @@ class TestDatabaseCleanup(TransactionCase):
|
||||||
})
|
})
|
||||||
purge_modules = self.env['cleanup.purge.wizard.module'].create({})
|
purge_modules = self.env['cleanup.purge.wizard.module'].create({})
|
||||||
# this reloads our registry, and we don't want to run tests twice
|
# this reloads our registry, and we don't want to run tests twice
|
||||||
|
# we also need the original registry for further tests, so save a
|
||||||
|
# reference to it
|
||||||
|
original_registry = RegistryManager.registries[self.env.cr.dbname]
|
||||||
config.options['test_enable'] = False
|
config.options['test_enable'] = False
|
||||||
purge_modules.purge_all()
|
purge_modules.purge_all()
|
||||||
config.options['test_enable'] = True
|
config.options['test_enable'] = True
|
||||||
|
@ -64,6 +68,8 @@ class TestDatabaseCleanup(TransactionCase):
|
||||||
self.assertFalse(self.env['ir.module.module'].search([
|
self.assertFalse(self.env['ir.module.module'].search([
|
||||||
('name', '=', 'database_cleanup_test'),
|
('name', '=', 'database_cleanup_test'),
|
||||||
]))
|
]))
|
||||||
|
# reset afterwards
|
||||||
|
RegistryManager.registries[self.env.cr.dbname] = original_registry
|
||||||
|
|
||||||
# create an orphaned table
|
# create an orphaned table
|
||||||
self.env.cr.execute('create table database_cleanup_test (test int)')
|
self.env.cr.execute('create table database_cleanup_test (test int)')
|
||||||
|
|
Loading…
Reference in New Issue