test_api.py - toot - Unnamed repository; edit this file 'description' to name t… | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
test_api.py (2096B) | |
--- | |
1 # -*- coding: utf-8 -*- | |
2 import pytest | |
3 | |
4 from requests import Request | |
5 | |
6 from toot import App, CLIENT_NAME, CLIENT_WEBSITE | |
7 from toot.api import create_app, login, SCOPES, AuthenticationError | |
8 from tests.utils import MockResponse, Expectations | |
9 | |
10 | |
11 def test_create_app(monkeypatch): | |
12 request = Request('POST', 'https://bigfish.software/api/v1/apps', | |
13 data={'website': CLIENT_WEBSITE, | |
14 'client_name': CLIENT_NAME, | |
15 'scopes': SCOPES, | |
16 'redirect_uris': 'urn:ietf:wg:oauth:2.0:oob'… | |
17 | |
18 response = MockResponse({'client_id': 'foo', | |
19 'client_secret': 'bar'}) | |
20 | |
21 e = Expectations() | |
22 e.add(request, response) | |
23 e.patch(monkeypatch) | |
24 | |
25 create_app('bigfish.software') | |
26 | |
27 | |
28 def test_login(monkeypatch): | |
29 app = App('bigfish.software', 'https://bigfish.software', 'foo', 'ba… | |
30 | |
31 data = { | |
32 'grant_type': 'password', | |
33 'client_id': app.client_id, | |
34 'client_secret': app.client_secret, | |
35 'username': 'user', | |
36 'password': 'pass', | |
37 'scope': SCOPES, | |
38 } | |
39 | |
40 request = Request('POST', 'https://bigfish.software/oauth/token', da… | |
41 | |
42 response = MockResponse({ | |
43 'token_type': 'bearer', | |
44 'scope': 'read write follow', | |
45 'access_token': 'xxx', | |
46 'created_at': 1492523699 | |
47 }) | |
48 | |
49 e = Expectations() | |
50 e.add(request, response) | |
51 e.patch(monkeypatch) | |
52 | |
53 login(app, 'user', 'pass') | |
54 | |
55 | |
56 def test_login_failed(monkeypatch): | |
57 app = App('bigfish.software', 'https://bigfish.software', 'foo', 'ba… | |
58 | |
59 data = { | |
60 'grant_type': 'password', | |
61 'client_id': app.client_id, | |
62 'client_secret': app.client_secret, | |
63 'username': 'user', | |
64 'password': 'pass', | |
65 'scope': SCOPES, | |
66 } | |
67 | |
68 request = Request('POST', 'https://bigfish.software/oauth/token', da… | |
69 response = MockResponse(is_redirect=True) | |
70 | |
71 e = Expectations() | |
72 e.add(request, response) | |
73 e.patch(monkeypatch) | |
74 | |
75 with pytest.raises(AuthenticationError): | |
76 login(app, 'user', 'pass') |