@@ -47,7 +47,18 @@ def refresh_packet_manager(archi, logs_dir):
4747
4848
4949# Install plugin, from local file if build is true, from repository if false.
50- def install_plugin (plugin , archi , build , logs_dir ):
50+ def install_plugin (plugin , archi , build , logs_dir , dependencies = None ):
51+ if dependencies :
52+ for dep in dependencies :
53+ if archi == "deb" :
54+ local_exists = len (glob .glob (f"./{ dep .lower ()} *.deb" )) > 0
55+ else :
56+ local_exists = len (glob .glob (f"./{ dep } *.rpm" )) > 0
57+ if local_exists :
58+ print (f"Installing test dependency { dep } for { plugin } " )
59+ dep_status = install_plugin (dep , archi , True , logs_dir )
60+ if dep_status != 0 :
61+ print (f"Warning: failed to install test dependency { dep } for { plugin } " )
5162 with open (f'{ logs_dir } /test-plugins-installation.log' , "a" ) as outfile :
5263 if archi == "deb" :
5364 if build :
@@ -177,13 +188,13 @@ def remove_plugin(plugin, archi, logs_dir):
177188 parser .add_argument ('--runner-id' , type = int , help = 'ID du runner pour le test des plugins' )
178189 parser .add_argument ('--logs-dir' , type = str , help = 'Répertoire des logs' , default = '/var/log' )
179190 parser .add_argument ('--reports-dir' , type = str , help = 'Répertoire des rapports' , default = 'reports' )
180- parser .add_argument ('--skip-robot-tests' , type = bool , help = 'True to skip robot tests, default value: False' , default = False )
191+ parser .add_argument ('--skip-robot-tests' , type = str , help = 'True to skip robot tests, default value: False' , default = 'false' )
181192 args = parser .parse_args ()
182193
183194 launch_snmp_sim ()
184195 archi = args .extension # expected either deb or rpm.
185196 logs_dir = args .logs_dir
186- skip_robot_tests = args .skip_robot_tests
197+ skip_robot_tests = args .skip_robot_tests . lower () == 'true'
187198 if args .runner_id :
188199 logs_dir = os .path .join (logs_dir , f"runner-{ args .runner_id } " )
189200 os .makedirs (logs_dir , exist_ok = True )
@@ -213,7 +224,9 @@ def remove_plugin(plugin, archi, logs_dir):
213224 print ("Testing plugin : " , plugin )
214225
215226 nb_plugins += 1
216- tmp = install_plugin (plugin , archi , plugins [plugin ]["build" ], logs_dir )
227+
228+ test_deps = plugins [plugin ].get ("test_dependencies" , [])
229+ tmp = install_plugin (plugin , archi , plugins [plugin ]["build" ], logs_dir , test_deps )
217230 if tmp > 0 :
218231 error_install += 1
219232 list_plugin_error .add (plugin )
0 commit comments