def test_post_to_invalid_web_hook(self): logger = SlackLogger(DUMMY_WEB_HOOK) time.sleep(2) with pytest.raises(Exception) as exc_info: logger.error('Test Message', 'Test Title') assert 'Failed' in str(exc_info.value)
def test_to_set_invalid_value_log_level(self): logger = SlackLogger(DUMMY_WEB_HOOK) for lv in [0, 50, 99, 'INFO']: with pytest.raises(ValueError): logger.set_log_level(lv) with pytest.raises(TypeError): logger.set_log_level()
def test_build_payload_with_custom_fields(self): logger = SlackLogger(DUMMY_WEB_HOOK, '#dummy_channel', 'Test User') test_fields = list() test_fields.append({ 'title': 'Project', 'value': 'Test Project', 'short': True }) test_fields.append({ 'title': 'Environment', 'value': 'Test', 'short': True }) actual = logger._SlackLogger__build_payload('test_build_payload_with_custom_fields', 'Test Title', 'https://github.com/iktakahiro/slackpy', 'Color Name', test_fields) expected = { 'channel': '#dummy_channel', 'username': '******', 'icon_url': None, 'attachments': [ {'color': 'Color Name', 'text': 'test_build_payload_with_custom_fields', 'title': 'Test Title', 'title_link': 'https://github.com/iktakahiro/slackpy', 'mrkdwn_in': ['text', 'fields', 'title'], 'fields': [ { 'title': 'Project', 'value': 'Test Project', 'short': True }, { 'title': 'Environment', 'value': 'Test', 'short': True } ], }] } assert expected == actual
def test_log_level_threshold(self): logger = SlackLogger('http://dummy_url') actual = logger.debug('TEST') assert actual is None logger.set_log_level(LogLv.WARN) actual = logger.info('TEST') assert actual is None logger.set_log_level(LogLv.ERROR) actual = logger.warn('TEST') assert actual is None
def test_build_payload_with_custom_fields(self): logger = SlackLogger('http://dummy_url', '#dummy_channel', 'Test User') test_fields = [] test_fields.append({ "title": "Project", "value": "Test Project", "short": "true" }) test_fields.append({ "title": "Environment", "value": "Test", "short": "true" }) actual = logger._SlackLogger__build_payload('Test Message', 'Test Title', 'Color Name', 'Fallback Text', test_fields) expected = { "channel": "#dummy_channel", "username": "******", "attachments": [{ "fallback": "Fallback Text", "color": "Color Name", "text": "Test Message", "fields": [{ "title": "Project", "value": "Test Project", "short": "true" }, { "title": "Environment", "value": "Test", "short": "true" }] }] } assert expected == actual
def test_log_level_threshold(self): logger = SlackLogger(DUMMY_WEB_HOOK) actual = logger.debug('TEST') assert actual is None logger.set_log_level(LogLv.WARN) actual = logger.info('TEST') assert actual is None logger.set_log_level(LogLv.ERROR) actual = logger.warn('TEST') assert actual is None
def test_build_payload_with_all_parameters(self): logger = SlackLogger(DUMMY_WEB_HOOK, '#dummy_channel', 'Test User', 'http://example.com/example.png') actual = logger._SlackLogger__build_payload('test_build_payload_with_all_parameters', 'Test Title', 'https://github.com/iktakahiro/slackpy', 'Color Name', '') expected = { 'channel': '#dummy_channel', 'username': '******', 'icon_url': 'http://example.com/example.png', 'attachments': [ {'color': 'Color Name', 'text': 'test_build_payload_with_all_parameters', 'title': 'Test Title', 'title_link': 'https://github.com/iktakahiro/slackpy', 'mrkdwn_in': ['text', 'fields', 'title'], 'fields': '', }] } assert expected == actual
def test_build_payload_without_specifying_optional_parameters(self): logger = SlackLogger(DUMMY_WEB_HOOK) actual = logger._SlackLogger__build_payload('test_build_payload_without_specifying_optional_parameters', 'Test Title', 'https://github.com/iktakahiro/slackpy', 'Color Name', '') expected = { 'channel': None, 'username': '******', 'icon_url': None, 'attachments': [ {'color': 'Color Name', 'text': 'test_build_payload_without_specifying_optional_parameters', 'title': 'Test Title', 'title_link': 'https://github.com/iktakahiro/slackpy', 'mrkdwn_in': ['text', 'fields', 'title'], 'fields': '', }] } assert expected == actual
def test_build_payload_without_specifying_optional_parameters(self): logger = SlackLogger('http://dummy_url') actual = logger._SlackLogger__build_payload('Test Message', 'Test Title', 'Color Name', 'Fallback Text', '') expected = { "channel": None, "username": "******", "attachments": { "fields": { "title": "Test Title", "text": "Test Message", "color": "Color Name", "fallback": "Fallback Text", } } } assert expected == actual
def test_to_set_invalid_value_log_level(self): logger = SlackLogger('http://dummy_url') for lv in [0, 50, 99, 'INFO']: with pytest.raises(ValueError): logger.set_log_level(lv) with pytest.raises(TypeError): logger.set_log_level()
def test_post_to_valid_web_hook(self): logger = SlackLogger(VALID_WEB_HOOK, icon_url="http://lorempixel.com/48/48") logger.set_log_level(LogLv.DEBUG) fields = [{ 'title': 'Project', 'value': 'Test Project', 'short': True }, { 'title': 'Environment', 'value': 'Test', 'short': True } ] time.sleep(2) response = logger.debug('DEBUG', 'test_post_to_valid_web_hook', fields=fields) assert response.status_code == 200 time.sleep(2) response = logger.info('INFO', 'test_post_to_valid_web_hook', fields=fields) assert response.status_code == 200 time.sleep(2) response = logger.warn('WARN', 'test_post_to_valid_web_hook', fields=fields) assert response.status_code == 200 time.sleep(2) response = logger.error('ERROR', 'test_post_to_valid_web_hook', fields=fields) assert response.status_code == 200 time.sleep(2) response = logger.message('CUSTOM', 'test_post_to_valid_web_hook', title_link='https://github.com/iktakahiro/slackpy', fields=fields, color='warning', log_level=20) assert response.status_code == 200
def test_to_set_valid_value_log_level(self): logger = SlackLogger(DUMMY_WEB_HOOK) for lv in [10, 20, 30, 40]: logger.set_log_level(lv) assert logger.log_level == lv
def test_title_link(self): logger = SlackLogger(VALID_WEB_HOOK) time.sleep(2) response = logger.info('test_title_link', 'slackpy repository', 'https://github.com/iktakahiro/slackpy') assert response.status_code == 200
def test_to_set_valid_value_log_level(self): logger = SlackLogger('http://dummy_url') for lv in [10, 20, 30, 40]: logger.set_log_level(lv) assert logger.log_level == lv
def test_channel_value_error(self): with pytest.raises(ValueError): SlackLogger('http://dummy_url', 'dummy_channel', 'Test User')
def test_default_log_level(self): logger = SlackLogger('http://dummy_url') assert logger.log_level == 20
def test_omit_title_link(self): logger = SlackLogger(VALID_WEB_HOOK) time.sleep(2) response = logger.info('test_omit_title_link', 'slackpy repository') assert response.status_code == 200
def test_minimum_post_to_valid_web_hook(self): logger = SlackLogger(VALID_WEB_HOOK) time.sleep(2) response = logger.info('test_minimum_post_to_valid_web_hook') assert response.status_code == 200