Skip to content

Commit

Permalink
Merge pull request #12 from zpriddy/bots_config
Browse files Browse the repository at this point in the history
Update plugin to pass in config
  • Loading branch information
zpriddy committed Feb 13, 2020
2 parents 7246377 + 4113e51 commit 5fefc3b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 7 deletions.
5 changes: 3 additions & 2 deletions example/plugins/example/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,15 @@
from slack.web.classes.actions import ActionButton

from glados import GladosBot, GladosPlugin, GladosRequest, RouteType, EventRoutes
from glados.plugin import PluginConfig

from .views import HOME_VIEW, SECURITY_MENU_1
from .countries import COUNTRY_OPTIONS


class ExamplePlugin(GladosPlugin):
def __init__(self, bot: GladosBot, name="test plugin", **kwargs):
super().__init__(name, bot, **kwargs)
def __init__(self, config: PluginConfig, bot: GladosBot, **kwargs):
super().__init__(config, bot, **kwargs)

self.add_route(RouteType.SendMessage, "test_send_message", self.send_message)
self.add_route(
Expand Down
8 changes: 5 additions & 3 deletions src/glados/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ def import_discovered_plugins(self, bots: Dict[str, GladosBot]):
if not plugin_config.enabled:
logging.warning(f"plugin {plugin_name} is disabled")
continue
plugin_config.name = plugin_name
logging.info(f"importing plugin: {plugin_name}")
module = importlib.import_module(plugin_config.package)

Expand Down Expand Up @@ -203,7 +204,7 @@ def get_required_bot(
self.plugin_configs[plugin_name]["enabled"] = False
continue

plugin = getattr(module, plugin_config.module)(bot, plugin_name)
plugin = getattr(module, plugin_config.module)(plugin_config, bot)
self.plugins[plugin_name] = plugin


Expand All @@ -218,8 +219,9 @@ class GladosPlugin:
the GLaDOS bot that this plugin will use
"""

def __init__(self, name: str, bot: GladosBot, **kwargs):
self.name = name
def __init__(self, config: PluginConfig, bot: GladosBot, **kwargs):
self.config = config
self.name = self.config.name
self.bot = bot

self._routes = dict() # type: Dict[int, Dict[str, GladosRoute]]
Expand Down
10 changes: 8 additions & 2 deletions tests/test_glados_plugin.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import pytest
from glados import GladosPlugin, RouteType, PluginImporter, BotImporter, GladosBot
from glados.plugin import PluginConfig
from glados.errors import GladosPathExistsError
import logging
from pathlib import Path
Expand All @@ -18,8 +19,13 @@ def MockGladosBot():


@pytest.fixture
def MockGladosPlugin(MockGladosBot):
return GladosPlugin("mock", MockGladosBot)
def MockPluginConfig():
return PluginConfig("test", "None")


@pytest.fixture
def MockGladosPlugin(MockGladosBot, MockPluginConfig):
return GladosPlugin(MockPluginConfig, MockGladosBot)


def check_only_one_file():
Expand Down

0 comments on commit 5fefc3b

Please sign in to comment.