def test_load_plugins(self): hipchat = HipChat(nick='Sarah', jid='test@localhost', password='******', plugins=(('sarah.bot.plugins.simple_counter', {}), ('sarah.bot.plugins.echo', {})), proxy={'host': 'localhost', 'port': 1234, 'username': '******', 'password': '******'}) hipchat.load_plugins() assert_that(hipchat.commands).extract('name').contains('.count', '.reset_count', '.echo') assert_that(hipchat.commands) \ .extract('name', 'module_name') \ .contains_sequence(('.count', 'sarah.bot.plugins.simple_counter'), ('.reset_count', 'sarah.bot.plugins.simple_counter'), ('.echo', 'sarah.bot.plugins.echo')) for command in hipchat.commands: assert_that(command.function).is_type_of(types.FunctionType)
def test_non_existing_plugin(self): h = HipChat(nick='Sarah', jid='test@localhost', password='******', plugins=(('spam.ham.egg.onion', {}),)) h.load_plugins() assert_that(h.commands).is_empty() assert_that(h.scheduler.get_jobs()).is_empty()
def hipchat(self, request): # NO h.start() for this test h = HipChat(nick='Sarah', jid='test@localhost', password='******', plugins=(('sarah.bot.plugins.simple_counter', {'spam': 'ham'}), ('sarah.bot.plugins.echo',))) h.load_plugins() return h
def test_missing_rooms_config(self): logging.warning = MagicMock() hipchat = HipChat(nick='Sarah', jid='test@localhost', password='******', plugins=(('sarah.bot.plugins.bmw_quotes', {"dummy": "spam"}),)) hipchat.connect = lambda: True hipchat.load_plugins() hipchat.run() assert_that(logging.warning.call_count).is_true() assert_that(logging.warning.call_args) \ .described_as("Configuration is given, " "but required field is missing") \ .is_equal_to(call('Missing rooms configuration for schedule job. ' 'sarah.bot.plugins.bmw_quotes. Skipping.'))