示例#1
0
    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)
示例#2
0
    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
示例#3
0
    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()
示例#4
0
    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)
示例#5
0
    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.'))
示例#6
0
    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.'))