def setUpClass(cls): cls.verbose = False cls.load_mgr = loader(verbose=cls.verbose, recursive=True) cls.load_mgr.set_addon_dirs(['./user']) cls.load_mgr.set_addon_methods(['method_a', 'method_b', 'method_c', '__addon__']) cls.load_mgr.set_addon_identifier('Plugin') cls.load_mgr.load_addons()
def test_invalid_addon_load(self): """ test to check if invalid addon raises exception. """ self.lazy_load_mgr = loader(verbose=self.verbose, recursive=True, lazy_load=True) self.lazy_load_mgr.set_addon_dirs(['./data']) self.lazy_load_mgr.load_addons() self.assertRaises(ImportError, self.lazy_load_mgr.get_instance, 'InvalidAddon')
def setUpClass(cls): """ setup loader & runner with 2 addons instances """ cls.run_mgr = runner(['start', 'execute'], ['stop']) cls.load_mgr = loader(verbose=False, recursive=True) cls.load_mgr.set_addon_dirs(['./data']) cls.load_mgr.load_addons() cls.cli_inst = cls.load_mgr.get_instance('CommandLineAddon') cls.fileio_inst = cls.load_mgr.get_instance('FileIOAddon')
def test_relative_path_conversion(self): dir_1 = './data' dir_op = os.path.abspath(os.path.join(os.path.dirname(__file__), 'data')) dir_2 = '../tests/data' self.load_mgr = loader(verbose=self.verbose, recursive=False) self.addon_dirs = list() self.load_mgr.set_addon_dirs([dir_1]) self.assertEqual(self.load_mgr.addon_dirs[0], dir_op) self.addon_dirs = list() self.load_mgr.set_addon_dirs([dir_2]) self.assertEqual(self.load_mgr.addon_dirs[0], dir_op)
def test_relative_path_conversion(self): dir_1 = './data' dir_op = os.path.abspath( os.path.join(os.path.dirname(__file__), 'data')) dir_2 = '../tests/data' self.load_mgr = loader(verbose=self.verbose, recursive=False) self.addon_dirs = list() self.load_mgr.set_addon_dirs([dir_1]) self.assertEqual(self.load_mgr.addon_dirs[0], dir_op) self.addon_dirs = list() self.load_mgr.set_addon_dirs([dir_2]) self.assertEqual(self.load_mgr.addon_dirs[0], dir_op)
def test_set_recursive_search(self): # addon_loader = AddonLoader(verbose, logger, recursive, lazy_load) # self.assertEqual(expected, addon_loader.set_recursive_search(state)) """ test to check if recursive module search works as expected. """ self.recursive_load_mgr = loader(verbose=self.verbose, lazy_load=False, recursive=True) self.recursive_load_mgr.set_addon_dirs(['./data']) self.recursive_load_mgr.load_addons() self.assertEqual(2, len(self.recursive_load_mgr.get_loaded_addons(list_all=True))) actual = self.recursive_load_mgr.get_instance('FileIOAddon') self.assertEqual('FileIOAddon', actual.get_name()) self.assertEqual('Release-1', actual.get_version())
def test_set_lazy_load(self): # addon_loader = AddonLoader(verbose, logger, recursive, lazy_load) # self.assertEqual(expected, addon_loader.set_lazy_load(state)) """ test to check if lazy_load mode runs as expected. addons are only loaded when they are required. """ self.lazy_load_mgr = loader(verbose=self.verbose, recursive=False, lazy_load=True) self.lazy_load_mgr.set_addon_dirs(['./data']) self.lazy_load_mgr.load_addons() self.assertEqual(0, len(self.lazy_load_mgr.get_loaded_addons(list_all=True))) actual = self.lazy_load_mgr.get_instance('CommandLineAddon') self.assertEqual(1, len(self.lazy_load_mgr.get_loaded_addons(list_all=True))) self.assertEqual('CommandLineAddon', actual.get_name()) self.assertEqual('1.0.5', actual.get_version())
def test_set_recursive_search(self): # addon_loader = AddonLoader(verbose, logger, recursive, lazy_load) # self.assertEqual(expected, addon_loader.set_recursive_search(state)) """ test to check if recursive module search works as expected. """ self.recursive_load_mgr = loader(verbose=self.verbose, lazy_load=False, recursive=True) self.recursive_load_mgr.set_addon_dirs(['./data']) self.recursive_load_mgr.load_addons() self.assertEqual( 2, len(self.recursive_load_mgr.get_loaded_addons(list_all=True))) actual = self.recursive_load_mgr.get_instance('FileIOAddon') self.assertEqual('FileIOAddon', actual.get_name()) self.assertEqual('Release-1', actual.get_version())
def test_set_lazy_load(self): # addon_loader = AddonLoader(verbose, logger, recursive, lazy_load) # self.assertEqual(expected, addon_loader.set_lazy_load(state)) """ test to check if lazy_load mode runs as expected. addons are only loaded when they are required. """ self.lazy_load_mgr = loader(verbose=self.verbose, recursive=False, lazy_load=True) self.lazy_load_mgr.set_addon_dirs(['./data']) self.lazy_load_mgr.load_addons() self.assertEqual( 0, len(self.lazy_load_mgr.get_loaded_addons(list_all=True))) actual = self.lazy_load_mgr.get_instance('CommandLineAddon') self.assertEqual( 1, len(self.lazy_load_mgr.get_loaded_addons(list_all=True))) self.assertEqual('CommandLineAddon', actual.get_name()) self.assertEqual('1.0.5', actual.get_version())
def setUpClass(cls): cls.verbose = False cls.load_mgr = loader(verbose=cls.verbose, recursive=False) cls.load_mgr.set_addon_dirs(['./data']) cls.load_mgr.load_addons()
logger = logging.getLogger('addon_logger') logger.setLevel(logging.DEBUG) formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') console_log = logging.StreamHandler() console_log.setFormatter(formatter) logger.addHandler(console_log) return logger # ********** SETUP ********** # 1. Initialize addon loader with optional verbose & logger [not mentioned below] # - If logger is not specified then default print will be used as <DateTime> <Level> <Message> # - Verbose decides how much to log loader_mgr = loader(verbose=True, recursive=True) # 2. Load all addons (scans & validates) [ Read more __doc__ on '_validate_addon' in AddonLoader ] loader_mgr.load_addons() # ********** CALL INDIVIDUAL FUNCTIONS FROM ADDON ********** # 3. Get instance of modules cli = loader_mgr.get_instance('CommandLineAddon') cli.print_addon_info() # 3.1: Call individual functions like below (Make sure to call .stop() or equivalent when you are done!) cli.start() cli.execute()
""" logger = logging.getLogger('addon_logger') logger.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') console_log = logging.StreamHandler() console_log.setFormatter(formatter) logger.addHandler(console_log) return logger # ********** SETUP ********** # 1. Initialize addon loader with optional verbose & logger [not mentioned below] # - If logger is not specified then default print will be used as <DateTime> <Level> <Message> # - Verbose decides how much to log loader_mgr = loader(verbose=True, recursive=True) # 2. Load all addons (scans & validates) [ Read more __doc__ on '_validate_addon' in AddonLoader ] loader_mgr.load_addons() # ********** CALL INDIVIDUAL FUNCTIONS FROM ADDON ********** # 3. Get instance of modules cli = loader_mgr.get_instance('CommandLineAddon') cli.print_addon_info() # 3.1: Call individual functions like below (Make sure to call .stop() or equivalent when you are done!) cli.start() cli.execute()