diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/cassettes/test_instance_activity.yaml | 28 | ||||
-rw-r--r-- | tests/cassettes/test_instance_peers.yaml | 28 | ||||
-rw-r--r-- | tests/conftest.py | 8 | ||||
-rw-r--r-- | tests/test_instance.py | 21 | ||||
-rw-r--r-- | tests/test_streaming.py | 10 |
5 files changed, 93 insertions, 2 deletions
diff --git a/tests/cassettes/test_instance_activity.yaml b/tests/cassettes/test_instance_activity.yaml new file mode 100644 index 0000000..f981c19 --- /dev/null +++ b/tests/cassettes/test_instance_activity.yaml | |||
@@ -0,0 +1,28 @@ | |||
1 | interactions: | ||
2 | - request: | ||
3 | body: null | ||
4 | headers: | ||
5 | Accept: ['*/*'] | ||
6 | Accept-Encoding: ['gzip, deflate'] | ||
7 | Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN] | ||
8 | Connection: [keep-alive] | ||
9 | User-Agent: [python-requests/2.9.1] | ||
10 | method: GET | ||
11 | uri: http://localhost:3000/api/v1/instance/activity | ||
12 | response: | ||
13 | body: {string: '[{"week":"1525039200","statuses":"402","logins":"2","registrations":"0"},{"week":"1524434400","statuses":"0","logins":"0","registrations":"0"},{"week":"1523829600","statuses":"1514","logins":"2","registrations":"0"},{"week":"1523224800","statuses":"0","logins":"0","registrations":"0"},{"week":"1522620000","statuses":"0","logins":"0","registrations":"0"},{"week":"1522015200","statuses":"0","logins":"0","registrations":"0"},{"week":"1521414000","statuses":"0","logins":"0","registrations":"0"},{"week":"1520809200","statuses":"0","logins":"0","registrations":"0"},{"week":"1520204400","statuses":"0","logins":"0","registrations":"0"},{"week":"1519599600","statuses":"0","logins":"0","registrations":"0"},{"week":"1518994800","statuses":"0","logins":"0","registrations":"0"},{"week":"1518390000","statuses":"0","logins":"0","registrations":"0"}]'} | ||
14 | headers: | ||
15 | Cache-Control: ['max-age=86400, public'] | ||
16 | Content-Type: [application/json; charset=utf-8] | ||
17 | Date: ['Sun, 06 May 2018 00:22:05 GMT'] | ||
18 | ETag: [W/"58f08c236168987e365c17c22d5d7788"] | ||
19 | Transfer-Encoding: [chunked] | ||
20 | Vary: ['Accept-Encoding, Origin'] | ||
21 | X-Content-Type-Options: [nosniff] | ||
22 | X-Frame-Options: [SAMEORIGIN] | ||
23 | X-Request-Id: [1155ee76-f23a-407c-a833-26e70c8efbe2] | ||
24 | X-Runtime: ['0.070592'] | ||
25 | X-XSS-Protection: [1; mode=block] | ||
26 | content-length: ['846'] | ||
27 | status: {code: 200, message: OK} | ||
28 | version: 1 | ||
diff --git a/tests/cassettes/test_instance_peers.yaml b/tests/cassettes/test_instance_peers.yaml new file mode 100644 index 0000000..0f70fc0 --- /dev/null +++ b/tests/cassettes/test_instance_peers.yaml | |||
@@ -0,0 +1,28 @@ | |||
1 | interactions: | ||
2 | - request: | ||
3 | body: null | ||
4 | headers: | ||
5 | Accept: ['*/*'] | ||
6 | Accept-Encoding: ['gzip, deflate'] | ||
7 | Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN] | ||
8 | Connection: [keep-alive] | ||
9 | User-Agent: [python-requests/2.9.1] | ||
10 | method: GET | ||
11 | uri: http://localhost:3000/api/v1/instance/peers | ||
12 | response: | ||
13 | body: {string: '[]'} | ||
14 | headers: | ||
15 | Cache-Control: ['max-age=86400, public'] | ||
16 | Content-Type: [application/json; charset=utf-8] | ||
17 | Date: ['Sun, 06 May 2018 00:24:52 GMT'] | ||
18 | ETag: [W/"3c4a13455f997cff85b40946e8a0eb9d"] | ||
19 | Transfer-Encoding: [chunked] | ||
20 | Vary: ['Accept-Encoding, Origin'] | ||
21 | X-Content-Type-Options: [nosniff] | ||
22 | X-Frame-Options: [SAMEORIGIN] | ||
23 | X-Request-Id: [98dc4df6-9979-4d50-8473-96f9253d65b9] | ||
24 | X-Runtime: ['0.031372'] | ||
25 | X-XSS-Protection: [1; mode=block] | ||
26 | content-length: ['2'] | ||
27 | status: {code: 200, message: OK} | ||
28 | version: 1 | ||
diff --git a/tests/conftest.py b/tests/conftest.py index b1fc8c5..a1dc161 100644 --- a/tests/conftest.py +++ b/tests/conftest.py | |||
@@ -1,19 +1,23 @@ | |||
1 | import pytest | 1 | import pytest |
2 | 2 | ||
3 | def _api(access_token='__MASTODON_PY_TEST_ACCESS_TOKEN'): | 3 | def _api(access_token='__MASTODON_PY_TEST_ACCESS_TOKEN', version="2.3.0", version_check_mode="created"): |
4 | import mastodon | 4 | import mastodon |
5 | return mastodon.Mastodon( | 5 | return mastodon.Mastodon( |
6 | api_base_url='http://localhost:3000', | 6 | api_base_url='http://localhost:3000', |
7 | client_id='__MASTODON_PY_TEST_CLIENT_ID', | 7 | client_id='__MASTODON_PY_TEST_CLIENT_ID', |
8 | client_secret='__MASTODON_PY_TEST_CLIENT_SECRET', | 8 | client_secret='__MASTODON_PY_TEST_CLIENT_SECRET', |
9 | access_token=access_token, | 9 | access_token=access_token, |
10 | mastodon_version="2.3.0") | 10 | mastodon_version=version, |
11 | version_check_mode=version_check_mode) | ||
11 | 12 | ||
12 | 13 | ||
13 | @pytest.fixture | 14 | @pytest.fixture |
14 | def api(): | 15 | def api(): |
15 | return _api() | 16 | return _api() |
16 | 17 | ||
18 | @pytest.fixture | ||
19 | def api_low_version(): | ||
20 | return _api(version="1.2.0", version_check_mode="changed") | ||
17 | 21 | ||
18 | @pytest.fixture | 22 | @pytest.fixture |
19 | def api2(): | 23 | def api2(): |
diff --git a/tests/test_instance.py b/tests/test_instance.py index 7b6dc49..e8be86f 100644 --- a/tests/test_instance.py +++ b/tests/test_instance.py | |||
@@ -1,5 +1,7 @@ | |||
1 | import pytest | 1 | import pytest |
2 | 2 | ||
3 | from mastodon.Mastodon import MastodonVersionError | ||
4 | |||
3 | @pytest.mark.vcr() | 5 | @pytest.mark.vcr() |
4 | def test_instance(api): | 6 | def test_instance(api): |
5 | instance = api.instance() | 7 | instance = api.instance() |
@@ -8,3 +10,22 @@ def test_instance(api): | |||
8 | 10 | ||
9 | expected_keys = set(('description', 'email', 'title', 'uri', 'version', 'urls')) | 11 | expected_keys = set(('description', 'email', 'title', 'uri', 'version', 'urls')) |
10 | assert set(instance.keys()) >= expected_keys | 12 | assert set(instance.keys()) >= expected_keys |
13 | |||
14 | @pytest.mark.vcr() | ||
15 | def test_instance_activity(api): | ||
16 | activity = api.instance_activity() | ||
17 | |||
18 | assert len(activity) > 0 | ||
19 | assert "statuses" in activity[0] | ||
20 | assert "logins" in activity[0] | ||
21 | assert "week" in activity[0] | ||
22 | |||
23 | @pytest.mark.vcr() | ||
24 | def test_instance_peers(api): | ||
25 | assert len(api.instance_peers()) == 0 | ||
26 | |||
27 | @pytest.mark.vcr() | ||
28 | def test_low_version(api_low_version): | ||
29 | with pytest.raises(MastodonVersionError): | ||
30 | instance = api_low_version.instance() | ||
31 | \ No newline at end of file | ||
diff --git a/tests/test_streaming.py b/tests/test_streaming.py index 883b773..33d1381 100644 --- a/tests/test_streaming.py +++ b/tests/test_streaming.py | |||
@@ -164,6 +164,16 @@ def test_invalid_event(): | |||
164 | '', | 164 | '', |
165 | ]) | 165 | ]) |
166 | 166 | ||
167 | def test_invalid_json(): | ||
168 | """But not too tolerant""" | ||
169 | listener = Listener() | ||
170 | with pytest.raises(MastodonMalformedEventError): | ||
171 | listener.handle_stream_([ | ||
172 | 'event: blahblah', | ||
173 | 'data: {kjaslkdjalskdjasd asdkjhak ajdasldasd}', | ||
174 | '', | ||
175 | ]) | ||
176 | |||
167 | def test_missing_event_name(): | 177 | def test_missing_event_name(): |
168 | listener = Listener() | 178 | listener = Listener() |
169 | with pytest.raises(MastodonMalformedEventError): | 179 | with pytest.raises(MastodonMalformedEventError): |