Skip to content

Commit

Permalink
Module imports are more sane and better tested
Browse files Browse the repository at this point in the history
  • Loading branch information
jacobtomlinson committed Aug 25, 2016
1 parent 318f04e commit b46edbb
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 10 deletions.
9 changes: 6 additions & 3 deletions opsdroid/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"])
Expand All @@ -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)
Expand All @@ -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)
Expand Down
5 changes: 1 addition & 4 deletions tests/mockmodules/connectors/connector.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
"""A mocked connector module."""

import unittest.mock as mock

from opsdroid.connector import Connector


Expand All @@ -10,5 +8,4 @@ class ConnectorTest(Connector):

def __init__(self, config):
"""Start the class."""
self.connect = mock.MagicMock()
self.respond = mock.MagicMock()
pass
4 changes: 1 addition & 3 deletions tests/mockmodules/databases/database.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
"""A mocked database module."""

import unittest.mock as mock

from opsdroid.database import Database


Expand All @@ -10,4 +8,4 @@ class DatabaseTest(Database):

def __init__(self, config):
"""Start the class."""
self.connect = mock.MagicMock()
pass
3 changes: 3 additions & 0 deletions tests/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:
Expand Down

0 comments on commit b46edbb

Please sign in to comment.