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 get_module(module_name):
19 registry = openerp.modules.registry.RegistryManager.get(DB)
20 return registry.get(module_name)
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 get_module('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 get_module('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: