1
# -*- coding: utf-8 -*-
2
# This assumes an existing but uninitialized database.
6
from openerp import SUPERUSER_ID
10
ADMIN_USER_ID = common.ADMIN_USER_ID
13
return openerp.modules.registry.RegistryManager.get(DB)[model]
16
return openerp.modules.registry.RegistryManager.get(DB).db.cursor()
18
def model_exists(model_name):
19
registry = openerp.modules.registry.RegistryManager.get(DB)
20
return model_name in registry
22
def reload_registry():
23
openerp.modules.registry.RegistryManager.new(
24
DB, update_module=True)
26
def search_registry(model_name, domain):
28
model = registry(model_name)
29
record_ids = model.search(cr, SUPERUSER_ID, domain, {})
33
def install_module(module_name):
34
ir_module_module = registry('ir.module.module')
36
module_ids = ir_module_module.search(cr, SUPERUSER_ID,
37
[('name', '=', module_name)], {})
38
assert len(module_ids) == 1
39
ir_module_module.button_install(cr, SUPERUSER_ID, module_ids, {})
44
def uninstall_module(module_name):
45
ir_module_module = registry('ir.module.module')
47
module_ids = ir_module_module.search(cr, SUPERUSER_ID,
48
[('name', '=', module_name)], {})
49
assert len(module_ids) == 1
50
ir_module_module.button_uninstall(cr, SUPERUSER_ID, module_ids, {})
55
class test_uninstall(unittest2.TestCase):
57
Test the install/uninstall of a test module. The module is available in
58
`openerp.tests` which should be present in the addons-path.
61
def test_01_install(self):
62
""" Check a few things showing the module is installed. """
63
install_module('test_uninstall')
64
assert model_exists('test_uninstall.model')
66
assert search_registry('ir.model.data',
67
[('module', '=', 'test_uninstall')])
69
assert search_registry('ir.model.fields',
70
[('model', '=', 'test_uninstall.model')])
72
def test_02_uninstall(self):
73
""" Check a few things showing the module is uninstalled. """
74
uninstall_module('test_uninstall')
75
assert not model_exists('test_uninstall.model')
77
assert not search_registry('ir.model.data',
78
[('module', '=', 'test_uninstall')])
80
assert not search_registry('ir.model.fields',
81
[('model', '=', 'test_uninstall.model')])
85
if __name__ == '__main__':
89
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: