|
1 | 1 | from slackclient._slackrequest import SlackRequest |
| 2 | +from slackclient.version import __version__ |
2 | 3 | import json |
3 | 4 | import os |
4 | 5 |
|
| 6 | +def test_http_headers(mocker): |
| 7 | + requests = mocker.patch('slackclient._slackrequest.requests') |
| 8 | + request = SlackRequest() |
| 9 | + |
| 10 | + request.do('xoxb-123', 'chat.postMessage', {'text': 'test', 'channel': '#general'}) |
| 11 | + args, kwargs = requests.post.call_args |
| 12 | + |
| 13 | + assert None != kwargs['headers']['user-agent'] |
| 14 | + |
| 15 | +def test_custom_user_agent(mocker): |
| 16 | + requests = mocker.patch('slackclient._slackrequest.requests') |
| 17 | + request = SlackRequest() |
| 18 | + |
| 19 | + request.append_user_agent("fooagent1","0.1") |
| 20 | + request.append_user_agent("baragent/2","0.2") |
| 21 | + |
| 22 | + request.do('xoxb-123', 'chat.postMessage', {'text': 'test', 'channel': '#general'}) |
| 23 | + args, kwargs = requests.post.call_args |
| 24 | + |
| 25 | + # Verify user-agent includes both default and custom agent info |
| 26 | + assert "slackclient/{}".format(__version__) in kwargs['headers']['user-agent'] |
| 27 | + assert "fooagent1/0.1" in kwargs['headers']['user-agent'] |
| 28 | + |
| 29 | + # verify escaping of slashes in custom agent name |
| 30 | + assert "baragent:2/0.2" in kwargs['headers']['user-agent'] |
| 31 | + |
5 | 32 | def test_post_file(mocker): |
6 | 33 | requests = mocker.patch('slackclient._slackrequest.requests') |
| 34 | + request = SlackRequest() |
7 | 35 |
|
8 | | - response = SlackRequest.do('xoxb-123', |
| 36 | + request.do('xoxb-123', |
9 | 37 | 'files.upload', |
10 | 38 | {'file': open(os.path.join('.', 'tests', 'data', 'slack_logo.png'), 'rb'), |
11 | 39 | 'filename': 'slack_logo.png'}) |
| 40 | + args, kwargs = requests.post.call_args |
12 | 41 |
|
13 | 42 | assert requests.post.call_count == 1 |
14 | | - args, kwargs = requests.post.call_args |
15 | 43 | assert 'https://slack.com/api/files.upload' == args[0] |
16 | 44 | assert {'filename': 'slack_logo.png', |
17 | 45 | 'token': 'xoxb-123'} == kwargs['data'] |
18 | 46 | assert None != kwargs['files'] |
19 | 47 |
|
20 | 48 | def test_get_file(mocker): |
21 | 49 | requests = mocker.patch('slackclient._slackrequest.requests') |
| 50 | + request = SlackRequest() |
22 | 51 |
|
23 | | - SlackRequest.do('xoxb-123', 'files.info', {'file': 'myFavoriteFileID'}) |
| 52 | + request.do('xoxb-123', 'files.info', {'file': 'myFavoriteFileID'}) |
| 53 | + args, kwargs = requests.post.call_args |
24 | 54 |
|
25 | 55 | assert requests.post.call_count == 1 |
26 | | - args, kwargs = requests.post.call_args |
27 | 56 | assert 'https://slack.com/api/files.info' == args[0] |
28 | 57 | assert {'file': "myFavoriteFileID", |
29 | 58 | 'token': 'xoxb-123'} == kwargs['data'] |
30 | 59 | assert None == kwargs['files'] |
31 | 60 |
|
32 | 61 | def test_post_attachements(mocker): |
33 | 62 | requests = mocker.patch('slackclient._slackrequest.requests') |
| 63 | + request = SlackRequest() |
34 | 64 |
|
35 | | - SlackRequest.do('xoxb-123', |
| 65 | + request.do('xoxb-123', |
36 | 66 | 'chat.postMessage', |
37 | 67 | {'attachments': [{'title': 'hello'}]}) |
| 68 | + args, kwargs = requests.post.call_args |
38 | 69 |
|
39 | 70 | assert requests.post.call_count == 1 |
40 | | - args, kwargs = requests.post.call_args |
41 | 71 | assert 'https://slack.com/api/chat.postMessage' == args[0] |
42 | 72 | assert {'attachments': json.dumps([{'title': 'hello'}]), |
43 | 73 | 'token': 'xoxb-123'} == kwargs['data'] |
|
0 commit comments