diff --git a/opsdroid/core.py b/opsdroid/core.py index 5b5575312..72075b0dd 100644 --- a/opsdroid/core.py +++ b/opsdroid/core.py @@ -57,7 +57,8 @@ def start_connectors(self, connectors): elif len(connectors) == 1: for name, cls in connectors[0]["module"].__dict__.items(): if isinstance(cls, type) and \ - isinstance(cls({}), Connector): + issubclass(cls, Connector) and\ + cls is not Connector: logging.debug("Adding connector: " + name) connectors[0]["config"]["bot-name"] = self.bot_name connector = cls(connectors[0]["config"]) @@ -67,7 +68,8 @@ def start_connectors(self, connectors): for connector_module in connectors: for name, cls in connector_module["module"].__dict__.items(): if isinstance(cls, type) and \ - isinstance(cls({}), Connector): + issubclass(cls, Connector) and\ + cls is not Connector: connector_module["config"]["bot-name"] = self.bot_name connector = cls(connector_module["config"]) self.connectors.append(connector) @@ -84,7 +86,8 @@ def start_databases(self, databases): for database_module in databases: for name, cls in database_module["module"].__dict__.items(): if isinstance(cls, type) and \ - isinstance(cls({}), Database): + issubclass(cls, Database) and \ + cls is not Database: logging.debug("Adding database: " + name) database = cls(database_module["config"]) self.memory.databases.append(database) diff --git a/tests/mockmodules/connectors/connector.py b/tests/mockmodules/connectors/connector.py index 0938160c6..cc20c7f6d 100644 --- a/tests/mockmodules/connectors/connector.py +++ b/tests/mockmodules/connectors/connector.py @@ -1,7 +1,5 @@ """A mocked connector module.""" -import unittest.mock as mock - from opsdroid.connector import Connector @@ -10,5 +8,4 @@ class ConnectorTest(Connector): def __init__(self, config): """Start the class.""" - self.connect = mock.MagicMock() - self.respond = mock.MagicMock() + pass diff --git a/tests/mockmodules/databases/database.py b/tests/mockmodules/databases/database.py index 3a5ae8640..0b8ac5500 100644 --- a/tests/mockmodules/databases/database.py +++ b/tests/mockmodules/databases/database.py @@ -1,7 +1,5 @@ """A mocked database module.""" -import unittest.mock as mock - from opsdroid.database import Database @@ -10,4 +8,4 @@ class DatabaseTest(Database): def __init__(self, config): """Start the class.""" - self.connect = mock.MagicMock() + pass diff --git a/tests/test_core.py b/tests/test_core.py index e309f8b5e..d6cb03886 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -57,6 +57,7 @@ def test_start_databases(self): "tests.mockmodules.databases.database") with self.assertRaises(NotImplementedError): opsdroid.start_databases([module]) + self.assertEqual(1, len(opsdroid.memory.databases)) def test_start_connectors(self): with OpsDroid() as opsdroid: @@ -68,8 +69,10 @@ def test_start_connectors(self): with self.assertRaises(NotImplementedError): opsdroid.start_connectors([module]) + self.assertEqual(1, len(opsdroid.connectors)) opsdroid.start_connectors([module, module]) + self.assertEqual(3, len(opsdroid.connectors)) def test_multiple_opsdroids(self): with OpsDroid() as opsdroid: