@@ -115,7 +115,7 @@ def db_name(self, value):
115115 self .db = None
116116 self .pool = None
117117
118- def install_module (self , module ):
118+ def install_module (self , module , with_test_depends = False ):
119119 """Installs a module
120120
121121 :param module: Module to install
@@ -138,6 +138,20 @@ def install_module(self, module):
138138 [('name' , '=' , module )],
139139 )
140140 assert module_ids , "Module %s not found" % module
141+ module_info = module_obj .get_module_info (module )
142+ if with_test_depends and module_info .get ('test_depends' ):
143+ logger .info ("Found extra dependencies for module %s" % module )
144+ extra_modules = module_info ['test_depends' ]
145+ logger .info ("Including extra dependencies:\n %s" % '\n ' .join (extra_modules ))
146+ extra_modules_ids = module_obj .search (
147+ txn .cursor , DEFAULT_USER ,
148+ [('name' , 'in' , extra_modules ), ('state' , '!=' , 'installed' )],
149+ )
150+ if len (extra_modules_ids ) != len (extra_modules ):
151+ logger .warning ("Some extra dependencies were not found or already installed" )
152+
153+ module_ids .extend (extra_modules_ids )
154+
141155 module_obj .button_install (cursor , uid , module_ids )
142156 pool = pooler .get_pool (cursor .dbname )
143157 mod_obj = pool .get ('ir.module.module' )
0 commit comments