@@ -107,6 +107,45 @@ def test_pass():
107107 assert emoji == slack_hook_icon_emoji
108108
109109
110+ @pytest .mark .parametrize ('expected_prefix,report_link' , [
111+ ("Test Prefix" , None ),
112+ ("Test Prefix" , "http://report_link.com" )
113+ ])
114+ def test_pytest_slack_message_prefix (testdir , expected_prefix , report_link ):
115+ """Make sure that message prefix works."""
116+
117+ testdir .makepyfile (
118+ """
119+ import pytest
120+ def test_pass():
121+ assert 1 == 1
122+ """
123+ )
124+
125+ slack_hook_host = 'http://test.com/any_hash'
126+ slack_hook_channel = 'test'
127+ run_args = [
128+ '--slack_channel' , slack_hook_channel ,
129+ '--slack_hook' , slack_hook_host ,
130+ '--slack_message_prefix' , expected_prefix
131+ ]
132+ if report_link :
133+ run_args .extend (['--slack_report_link' , report_link ])
134+
135+ expected_text = 'Passed=1 Failed=0 Skipped=0 Error=0 XFailed=0 XPassed=0'
136+ if report_link :
137+ expected_text = '<%s|%s>' % (report_link , expected_text )
138+ expected_text = '%s: %s' % (expected_prefix , expected_text )
139+
140+ with mock .patch ('requests.post' ) as mock_post :
141+ testdir .runpytest (* run_args )
142+
143+ called_data = json .loads (mock_post .call_args [1 ]['data' ])
144+ text = called_data ['attachments' ][0 ]['text' ]
145+
146+ assert text == expected_text
147+
148+
110149@pytest .mark .parametrize ('test_input,expected_emoji' , [
111150 ('1 == 1' , ':sunny:' ),
112151 ('2 == 1' , ':rain_cloud:' ),
0 commit comments