예제 #1
0
 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()
예제 #2
0
 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')
예제 #3
0
 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')
예제 #4
0
 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')
예제 #5
0
    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)
예제 #6
0
    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)
예제 #7
0
    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())
예제 #8
0
    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())
예제 #9
0
    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())
예제 #10
0
    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())
예제 #11
0
 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()
예제 #12
0
 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()
예제 #13
0
        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()
예제 #14
0
        """
        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()