def test_add_schedule_job(self): hipchat = HipChat(nick='Sarah', jid='test@localhost', password='******', plugins=(('sarah.bot.plugins.bmw_quotes', {'rooms': ('123_homer@localhost',)}),)) hipchat.connect = lambda: True hipchat.run() jobs = hipchat.scheduler.get_jobs() assert_that(jobs).is_length(1) assert_that(jobs[0]).has_id('sarah.bot.plugins.bmw_quotes.bmw_quotes') assert_that(jobs[0].trigger).has_interval_length(300)
def hipchat(self, request): h = HipChat(nick='Sarah', jid='test@localhost', password='******', plugins=(('sarah.bot.plugins.hello', {}), ('sarah.bot.plugins.simple_counter', {}), ('sarah.bot.plugins.echo',)), max_workers=4) h.client.connect = lambda: True h.client.process = lambda *args, **kwargs: True request.addfinalizer(h.stop) h.run() return h
def test_run(self): hipchat = HipChat(nick='Sarah', jid='test@localhost', password='******') with patch.object(hipchat.client, 'connect', return_value=True): with patch.object( hipchat.client, 'process', return_value=True) as mock_client_process: hipchat.run() assert_that(mock_client_process.call_count).is_equal_to(1) assert_that(hipchat.scheduler.running).is_true()
def test_connection_fail(self): hipchat = HipChat(nick='Sarah', jid='test@localhost', password='******') with patch.object( hipchat.client, 'connect', return_value=False) as mock_connect: with pytest.raises(SarahHipChatException) as e: hipchat.run() assert_that(str(e)) \ .matches("Couldn't connect to server\.") assert_that(mock_connect.call_count).is_equal_to(1)
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.'))
def test_missing_config(self): logging.warning = MagicMock() hipchat = HipChat(nick='Sarah', jid='test@localhost', password='******', plugins=(('sarah.bot.plugins.bmw_quotes',),)) hipchat.connect = lambda: True hipchat.run() assert_that(hipchat.scheduler.get_jobs()) \ .described_as("No module is loaded") \ .is_empty() assert_that(logging.warning.call_count).is_equal_to(1) assert_that(logging.warning.call_args) \ .described_as("Configuration is entirely missing.") \ .is_equal_to(call('Missing configuration for schedule job. ' 'sarah.bot.plugins.bmw_quotes. Skipping.'))