async def test_parse_regex_insensitive(self): with OpsDroid() as opsdroid: regex = r"Hello .*" mock_connector = Connector({}, opsdroid=opsdroid) mock_connector.send = amock.CoroutineMock() skill = await self.getMockSkill() opsdroid.skills.append(match_regex(regex, case_sensitive=False)(skill)) message = Message("HELLO world", "user", "default", mock_connector) tasks = await opsdroid.parse(message) for task in tasks: await task self.assertTrue(mock_connector.send.called)
async def test_unload(self): with OpsDroid() as opsdroid: mock_connector = Connector({}, opsdroid=opsdroid) mock_connector.disconnect = amock.CoroutineMock() opsdroid.connectors = [mock_connector] mock_database = Database({}) mock_database.disconnect = amock.CoroutineMock() opsdroid.memory.databases = [mock_database] mock_skill = amock.Mock(config={"name": "mockskill"}) opsdroid.skills = [mock_skill] opsdroid.web_server = Web(opsdroid) opsdroid.web_server.stop = amock.CoroutineMock() mock_web_server = opsdroid.web_server opsdroid.cron_task = amock.CoroutineMock() opsdroid.cron_task.cancel = amock.CoroutineMock() mock_cron_task = opsdroid.cron_task async def task(): await asyncio.sleep(.5) t = asyncio.Task(task(), loop=self.loop) await opsdroid.unload() self.assertTrue(t.cancel()) self.assertTrue(mock_connector.disconnect.called) self.assertTrue(mock_database.disconnect.called) self.assertTrue(mock_web_server.stop.called) self.assertTrue(opsdroid.web_server is None) self.assertTrue(mock_cron_task.cancel.called) self.assertTrue(opsdroid.cron_task is None) self.assertFalse(opsdroid.connectors) self.assertFalse(opsdroid.memory.databases) self.assertFalse(opsdroid.skills)
def test_property(self): connector = Connector({"name": "shell"}) self.assertEqual("shell", connector.configuration.get("name"))
def test_init(self): config = {"example_item": "test"} connector = Connector(config) self.assertEqual(None, connector.default_room) self.assertEqual("", connector.name) self.assertEqual("test", connector.config["example_item"])
async def test_create_event(self): creator = events.EventCreator(Connector({})) self.assertEqual(None, await creator.create_event({"type": "NotAnEvent"}, ""))
def test_default_room(self): with OpsDroid() as opsdroid: mock_connector = Connector({}, opsdroid=opsdroid) self.assertEqual(None, mock_connector.default_room)
async def test_send_incorrect_event(self): connector = Connector({"name": "shell"}) with self.assertRaises(TypeError): await connector.send(object())
async def test_disconnect(self): connector = Connector({}, opsdroid=OpsDroid()) res = await connector.disconnect() assert res is None
def test_react(self): connector = Connector({}, opsdroid=OpsDroid()) reacted = self.loop.run_until_complete(connector.react({}, 'emoji')) self.assertFalse(reacted)
def test_respond(self): connector = Connector({}, opsdroid=OpsDroid()) with self.assertRaises(TypeError): self.loop.run_until_complete(connector.send(Message("")))
def test_listen(self): connector = Connector({}, opsdroid=OpsDroid()) with self.assertRaises(NotImplementedError): self.loop.run_until_complete(connector.listen())
def test_property(self): opsdroid = amock.CoroutineMock() connector = Connector({"name": "shell"}, opsdroid=opsdroid) self.assertEqual("shell", connector.configuration.get("name"))
def test_init(self): config = {"example_item": "test"} connector = Connector(config, opsdroid=OpsDroid()) self.assertEqual(None, connector.default_target) self.assertEqual("", connector.name) self.assertEqual("test", connector.config["example_item"])
def test_default_room(self): mock_connector = Connector({}) self.assertEqual(None, mock_connector.default_room)
def test_user_typing(self): opsdroid = 'opsdroid' connector = Connector({}, opsdroid=OpsDroid()) user_typing = self.loop.run_until_complete( connector.user_typing(trigger=True)) assert user_typing is None
def test_unsupported_event(self): connector = Connector({}, opsdroid=OpsDroid()) with self.assertRaises(TypeError): self.loop.run_until_complete(connector.send(Reaction("emoji")))
def test_respond(self): connector = Connector({}) with self.assertRaises(NotImplementedError): self.loop.run_until_complete(connector.respond({}))