コード例 #1
0
ファイル: test_loader.py プロジェクト: b-com/watcher-metering
    def test_load_driver_with_external_opts(self, m_driver_manager):
        m_driver_manager.return_value = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeDriverWithExternalOpts.get_name(),
                entry_point="%s:%s" % (FakeDriverWithExternalOpts.__module__,
                                       FakeDriverWithExternalOpts.__name__),
                plugin=FakeDriverWithExternalOpts,
                obj=None,
            ),
            namespace=FakeDriverWithExternalOpts.namespace(),
        )

        loader_manager = DriverLoader(
            conf=cfg.CONF,
            namespace='TESTING',
            name='fake_with_ext_opts'
        )
        loaded_driver = loader_manager.load()

        self.assertEqual(
            hasattr(loaded_driver, "fake__test_external_opt"),
            True
        )
        self.assertEqual(
            loaded_driver.fake__test_external_opt,
            "fake_with_ext_opts"
        )
コード例 #2
0
ファイル: test_loader.py プロジェクト: b-com/watcher-metering
    def setUp(self):
        super(TestDriverLoader, self).setUp()
        # To load the drivers without using the config file
        self.useFixture(ConfFixture())

        def _fake_parse(self, *args, **kw):
            return cfg.ConfigOpts._parse_cli_opts(cfg.CONF, [])

        cfg.CONF._parse_cli_opts = _fake_parse

        # First dependency to be returned
        self.no_group_driver_manager = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeDriverNoGroup.get_name(),
                entry_point="%s:%s" % (FakeDriverNoGroup.__module__,
                                       FakeDriverNoGroup.__name__),
                plugin=FakeDriverNoGroup,
                obj=None,
            ),
            namespace=FakeDriverNoGroup.namespace(),
        )

        # 2nd dependency to be returned
        self.with_ext_opts_driver_manager = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeDriverWithExternalOpts.get_name(),
                entry_point="%s:%s" % (FakeDriverWithExternalOpts.__module__,
                                       FakeDriverWithExternalOpts.__name__),
                plugin=FakeDriverWithExternalOpts,
                obj=None,
            ),
            namespace=FakeDriverWithExternalOpts.namespace(),
        )

        self.patches.extend([
            # patch.object(cfg, "ConfigOpts", ),
        ])

        # Applies all of our patches before each test
        for _patch in self.patches:
            _patch.start()
コード例 #3
0
    def setUp(self):
        super(TestDriverLoader, self).setUp()
        # To load the drivers without using the config file
        self.useFixture(ConfFixture())

        def _fake_parse(self, *args, **kw):
            return cfg.ConfigOpts._parse_cli_opts(cfg.CONF, [])

        cfg.CONF._parse_cli_opts = _fake_parse

        # First dependency to be returned
        self.no_group_driver_manager = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeDriverNoGroup.get_name(),
                entry_point="%s:%s" %
                (FakeDriverNoGroup.__module__, FakeDriverNoGroup.__name__),
                plugin=FakeDriverNoGroup,
                obj=None,
            ),
            namespace=FakeDriverNoGroup.namespace(),
        )

        # 2nd dependency to be returned
        self.with_ext_opts_driver_manager = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeDriverWithExternalOpts.get_name(),
                entry_point="%s:%s" % (FakeDriverWithExternalOpts.__module__,
                                       FakeDriverWithExternalOpts.__name__),
                plugin=FakeDriverWithExternalOpts,
                obj=None,
            ),
            namespace=FakeDriverWithExternalOpts.namespace(),
        )

        self.patches.extend([
            # patch.object(cfg, "ConfigOpts", ),
        ])

        # Applies all of our patches before each test
        for _patch in self.patches:
            _patch.start()
コード例 #4
0
    def test_load_driver_no_opt(self, m_driver_manager):
        m_driver_manager.return_value = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeLoadable.get_name(),
                entry_point="%s:%s" %
                (FakeLoadable.__module__, FakeLoadable.__name__),
                plugin=FakeLoadable,
                obj=None),
            namespace=FakeLoadable.namespace())

        loader_manager = DefaultLoader(namespace='TESTING')
        loaded_driver = loader_manager.load(name='fake')

        self.assertEqual(loaded_driver.get_name(), FakeLoadable.get_name())
コード例 #5
0
ファイル: test_loader.py プロジェクト: XroLLla/watcher
    def test_load_driver_no_opt(self, m_driver_manager):
        m_driver_manager.return_value = DriverManager.make_test_instance(
            extension=Extension(name=FakeLoadable.get_name(),
                                entry_point="%s:%s" % (
                                FakeLoadable.__module__,
                                FakeLoadable.__name__),
                                plugin=FakeLoadable,
                                obj=None),
            namespace=FakeLoadable.namespace())

        loader_manager = DefaultLoader(namespace='TESTING')
        loaded_driver = loader_manager.load(name='fake')

        self.assertEqual(loaded_driver.get_name(), FakeLoadable.get_name())
コード例 #6
0
    def test_load_driver_no_opt(self, m_driver_manager):
        m_driver_manager.return_value = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeDriverNoOpt.get_name(),
                entry_point="%s:%s" %
                (FakeDriverNoOpt.__module__, FakeDriverNoOpt.__name__),
                plugin=FakeDriverNoOpt,
                obj=None,
            ),
            namespace=FakeDriverNoOpt.namespace(),
        )

        loader_manager = DriverLoader(conf=cfg.CONF,
                                      namespace='TESTING',
                                      name='fake_no_opt')
        loaded_driver = loader_manager.load()

        self.assertEqual(isinstance(loaded_driver, FakeDriverNoOpt), True)
コード例 #7
0
    def test_load_driver_with_opts(self, m_driver_manager):
        m_driver_manager.return_value = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeDriverWithOpts.get_name(),
                entry_point="%s:%s" %
                (FakeDriverWithOpts.__module__, FakeDriverWithOpts.__name__),
                plugin=FakeDriverWithOpts,
                obj=None,
            ),
            namespace=FakeDriverWithOpts.namespace(),
        )

        loader_manager = DriverLoader(conf=cfg.CONF,
                                      namespace='TESTING',
                                      name='fake_with_opts')
        loaded_driver = loader_manager.load()

        self.assertEqual(hasattr(loaded_driver, "test_opt"), True)
        self.assertEqual(loaded_driver.test_opt, "fake_with_opts")
コード例 #8
0
ファイル: test_loader.py プロジェクト: b-com/watcher-metering
    def test_load_driver_no_group(self, m_driver_manager):
        m_driver_manager.return_value = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeDriverNoGroup.get_name(),
                entry_point="%s:%s" % (FakeDriverNoGroup.__module__,
                                       FakeDriverNoGroup.__name__),
                plugin=FakeDriverNoGroup,
                obj=None,
            ),
            namespace=FakeDriverNoGroup.namespace(),
        )

        loader_manager = DriverLoader(
            conf=cfg.CONF,
            namespace='',
            name='fake_no_group'
        )
        loaded_driver = loader_manager.load()

        self.assertEqual(hasattr(loaded_driver, "test_opt"), True)
        self.assertEqual(loaded_driver.test_opt, "fake_no_group")
コード例 #9
0
ファイル: test_loader.py プロジェクト: b-com/watcher-metering
    def test_load_driver_no_opt(self, m_driver_manager):
        m_driver_manager.return_value = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeDriverNoOpt.get_name(),
                entry_point="%s:%s" % (FakeDriverNoOpt.__module__,
                                       FakeDriverNoOpt.__name__),
                plugin=FakeDriverNoOpt,
                obj=None,
            ),
            namespace=FakeDriverNoOpt.namespace(),
        )

        loader_manager = DriverLoader(
            conf=cfg.CONF,
            namespace='TESTING',
            name='fake_no_opt'
        )
        loaded_driver = loader_manager.load()

        self.assertEqual(
            isinstance(loaded_driver, FakeDriverNoOpt),
            True
        )
コード例 #10
0
ファイル: test_agent.py プロジェクト: b-com/watcher-metering
    def setUp(self):
        super(TestAgent, self).setUp()
        self.conf = cfg.ConfigOpts()
        # To load the drivers without using the config file
        self.useFixture(ConfFixture(self.conf))

        def _fake_parse(self, args=[]):
            return cfg.ConfigOpts._parse_cli_opts(self, [])

        _fake_parse_method = types.MethodType(_fake_parse, self.conf)
        self.conf._parse_cli_opts = _fake_parse_method

        # First dependency to be returned
        self.dummy_driver_manager = DriverManager.make_test_instance(
            extension=Extension(
                name=DummyMetricPuller.get_name(),
                entry_point='fake.entry.point',
                plugin=DummyMetricPuller,
                obj=None,
            ),
            namespace='TESTING',
        )
        # 2nd dependency to be returned
        self.fake_driver_manager = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeMetricPuller.get_name(),
                entry_point='fake.entry.point',
                plugin=FakeMetricPuller,
                obj=None,
            ),
            namespace='TESTING',
        )
        self.defaults_drivers = {
            DummyMetricPuller.get_name(): self.dummy_driver_manager,
            FakeMetricPuller.get_name(): self.fake_driver_manager,
        }

        def _fake_loader(name, **kw):
            return self.defaults_drivers[name]

        # Patches the agent socket
        self.m_agent_socket = MagicMock(autospec=True)

        self.patches.extend([
            # Deactivates the nanomsg socket
            patch(
                "watcher_metering.agent.agent.nanomsg.Socket",
                new=self.m_agent_socket,
            ),
            # Sets the test namespace to 'TESTING'
            patch.object(
                Agent,
                "namespace",
                PropertyMock(return_value='TESTING'),
            ),
            # Patches the driver manager to retourn our test drivers
            # instead of the real ones
            patch(
                "watcher_metering.load.loader.DriverManager",
                MagicMock(side_effect=_fake_loader),
            ),
        ])

        # Applies all of our patches before each test
        for _patch in self.patches:
            _patch.start()

        self.agent = Agent(
            conf=self.conf,
            driver_names=self.conf.agent.driver_names,
            use_nanoconfig_service=False,
            publisher_endpoint="fake",
            nanoconfig_service_endpoint="",
            nanoconfig_update_endpoint="",
            nanoconfig_profile="nanoconfig://test_profile"
        )
        # Default ticking is set to 0 to reduce test execution time
        self.agent.TICK_INTERVAL = 0
コード例 #11
0
    def setUp(self):
        super(TestAgent, self).setUp()
        self.conf = cfg.ConfigOpts()
        # To load the drivers without using the config file
        self.useFixture(ConfFixture(self.conf))

        def _fake_parse(self, args=[]):
            return cfg.ConfigOpts._parse_cli_opts(self, [])

        _fake_parse_method = types.MethodType(_fake_parse, self.conf)
        self.conf._parse_cli_opts = _fake_parse_method

        # First dependency to be returned
        self.dummy_driver_manager = DriverManager.make_test_instance(
            extension=Extension(
                name=DummyMetricPuller.get_name(),
                entry_point='fake.entry.point',
                plugin=DummyMetricPuller,
                obj=None,
            ),
            namespace='TESTING',
        )
        # 2nd dependency to be returned
        self.fake_driver_manager = DriverManager.make_test_instance(
            extension=Extension(
                name=FakeMetricPuller.get_name(),
                entry_point='fake.entry.point',
                plugin=FakeMetricPuller,
                obj=None,
            ),
            namespace='TESTING',
        )
        self.defaults_drivers = {
            DummyMetricPuller.get_name(): self.dummy_driver_manager,
            FakeMetricPuller.get_name(): self.fake_driver_manager,
        }

        def _fake_loader(name, **kw):
            return self.defaults_drivers[name]

        # Patches the agent socket
        self.m_agent_socket = MagicMock(autospec=True)

        self.patches.extend([
            # Deactivates the nanomsg socket
            patch(
                "watcher_metering.agent.agent.nanomsg.Socket",
                new=self.m_agent_socket,
            ),
            # Sets the test namespace to 'TESTING'
            patch.object(
                Agent,
                "namespace",
                PropertyMock(return_value='TESTING'),
            ),
            # Patches the driver manager to retourn our test drivers
            # instead of the real ones
            patch(
                "watcher_metering.load.loader.DriverManager",
                MagicMock(side_effect=_fake_loader),
            ),
        ])

        # Applies all of our patches before each test
        for _patch in self.patches:
            _patch.start()

        self.agent = Agent(conf=self.conf,
                           driver_names=self.conf.agent.driver_names,
                           use_nanoconfig_service=False,
                           publisher_endpoint="fake",
                           nanoconfig_service_endpoint="",
                           nanoconfig_update_endpoint="",
                           nanoconfig_profile="nanoconfig://test_profile")
        # Default ticking is set to 0 to reduce test execution time
        self.agent.TICK_INTERVAL = 0