aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenz Diener <[email protected]>2017-11-30 16:02:29 +0100
committerGitHub <[email protected]>2017-11-30 16:02:29 +0100
commitc6f1196ddc1899e64d60b102e1cfa1c1c1321e77 (patch)
tree107718e14050a9f6e5046157375fe7fae5c5409d
parentf52c8f5024f4383fbcc645e54d2cbda5038ebd2c (diff)
parent050077e97a78008a2264e5497871cb06c00e948a (diff)
downloadmastodon.py-c6f1196ddc1899e64d60b102e1cfa1c1c1321e77.tar.gz
Merge pull request #112 from codl/fix-111
fix #111
-rw-r--r--mastodon/Mastodon.py4
-rw-r--r--tests/cassettes/test_status_empty.yaml29
-rw-r--r--tests/test_status.py7
3 files changed, 38 insertions, 2 deletions
diff --git a/mastodon/Mastodon.py b/mastodon/Mastodon.py
index 2f84635..83a8081 100644
--- a/mastodon/Mastodon.py
+++ b/mastodon/Mastodon.py
@@ -1227,7 +1227,9 @@ class Mastodon:
1227 1227
1228 # See if the returned dict is an error dict even though status is 200 1228 # See if the returned dict is an error dict even though status is 200
1229 if isinstance(response, dict) and 'error' in response: 1229 if isinstance(response, dict) and 'error' in response:
1230 raise MastodonAPIError("Mastodon API returned error: " + str(response['error'])) 1230 if not isinstance(response['error'], six.string_types):
1231 response['error'] = six.text_type(response['error'])
1232 raise MastodonAPIError("Mastodon API returned error: " + response['error'])
1231 1233
1232 # Parse link headers 1234 # Parse link headers
1233 if isinstance(response, list) and \ 1235 if isinstance(response, list) and \
diff --git a/tests/cassettes/test_status_empty.yaml b/tests/cassettes/test_status_empty.yaml
new file mode 100644
index 0000000..52be5c4
--- /dev/null
+++ b/tests/cassettes/test_status_empty.yaml
@@ -0,0 +1,29 @@
1interactions:
2- request:
3 body: !!python/unicode status=&visibility=
4 headers:
5 Accept: ['*/*']
6 Accept-Encoding: ['gzip, deflate']
7 Authorization: [Bearer __MASTODON_PY_TEST_ACCESS_TOKEN]
8 Connection: [keep-alive]
9 Content-Length: ['19']
10 Content-Type: [application/x-www-form-urlencoded]
11 User-Agent: [python-requests/2.18.4]
12 method: POST
13 uri: http://localhost:3000/api/v1/statuses
14 response:
15 body: {string: "{\"error\":\"\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u306B\u5931\u6557\u3057\u307E\u3057\u305F:
16 Text\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\"}"}
17 headers:
18 cache-control: [no-cache]
19 content-length: ['87']
20 content-type: [application/json; charset=utf-8]
21 transfer-encoding: [chunked]
22 vary: ['Accept-Encoding, Origin']
23 x-content-type-options: [nosniff]
24 x-frame-options: [SAMEORIGIN]
25 x-request-id: [b28457db-8446-42ac-b5a8-241d0a7434b4]
26 x-runtime: ['0.109104']
27 x-xss-protection: [1; mode=block]
28 status: {code: 422, message: Unprocessable Entity}
29version: 1
diff --git a/tests/test_status.py b/tests/test_status.py
index a3945fb..3106981 100644
--- a/tests/test_status.py
+++ b/tests/test_status.py
@@ -5,7 +5,12 @@ from time import sleep
5@pytest.mark.vcr() 5@pytest.mark.vcr()
6def test_status(status, api): 6def test_status(status, api):
7 status2 = api.status(status['id']) 7 status2 = api.status(status['id'])
8 assert status2 == status 8 assert status2
9
10@pytest.mark.vcr()
11def test_status_empty(api):
12 with pytest.raises(MastodonAPIError):
13 api.status_post('')
9 14
10@pytest.mark.vcr() 15@pytest.mark.vcr()
11def test_status_missing(api): 16def test_status_missing(api):
Powered by cgit v1.2.3 (git 2.41.0)