Skip to content

Commit 7273baa

Browse files
committed
Add additional test for OAuth. #33
1 parent e5e5f6e commit 7273baa

File tree

1 file changed

+29
-7
lines changed

1 file changed

+29
-7
lines changed

tests/functional/test_auth.py

+29-7
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,53 @@
11
import pytest
22
import os
33

4-
from farmOS import farmOS, HTTPError
5-
from oauthlib.oauth2 import InvalidGrantError
4+
from farmOS import farmOS, HTTPError, InvalidGrantError, InvalidClientError, InvalidScopeError
65

76
from tests.conftest import farmOS_testing_server
87

8+
# Variables for testing.
9+
FARMOS_HOSTNAME = os.getenv("FARMOS_HOSTNAME")
10+
FARMOS_OAUTH_USERNAME = os.getenv("FARMOS_OAUTH_USERNAME")
11+
FARMOS_OAUTH_PASSWORD = os.getenv("FARMOS_OAUTH_PASSWORD")
12+
913

10-
# Test authentication
1114
@farmOS_testing_server
1215
def test_invalid_login():
1316
with pytest.raises(InvalidGrantError):
14-
farm = farmOS('test.farmos.net')
17+
farm = farmOS(FARMOS_HOSTNAME)
1518
farm.authorize('username', 'password')
1619

1720

21+
@farmOS_testing_server
22+
def test_invalid_client_id():
23+
with pytest.raises(InvalidClientError):
24+
farm = farmOS(FARMOS_HOSTNAME, client_id='bad_client')
25+
farm.authorize(FARMOS_OAUTH_USERNAME, FARMOS_OAUTH_PASSWORD)
26+
27+
28+
@farmOS_testing_server
29+
def test_invalid_client_secret():
30+
with pytest.raises(InvalidClientError):
31+
farm = farmOS(FARMOS_HOSTNAME, client_id='farm', client_secret='bad_pass')
32+
farm.authorize(FARMOS_OAUTH_USERNAME, FARMOS_OAUTH_PASSWORD)
33+
34+
35+
@farmOS_testing_server
36+
def test_invalid_scopet():
37+
with pytest.raises(InvalidScopeError):
38+
farm = farmOS(FARMOS_HOSTNAME, scope="bad_scope")
39+
farm.authorize(FARMOS_OAUTH_USERNAME, FARMOS_OAUTH_PASSWORD, scope="bad_scope")
40+
41+
1842
@farmOS_testing_server
1943
def test_unauthorized_request(test_farm):
2044
with pytest.raises(HTTPError, match=r"403 *."):
21-
farm = farmOS('test.farmos.net')
45+
farm = farmOS(FARMOS_HOSTNAME)
2246
farm.log.get()
2347

2448

2549
@farmOS_testing_server
2650
def test_valid_login(test_farm):
27-
FARMOS_OAUTH_USERNAME = os.getenv("FARMOS_OAUTH_USERNAME")
28-
FARMOS_OAUTH_PASSWORD = os.getenv("FARMOS_OAUTH_PASSWORD")
2951
token = test_farm.authorize(username=FARMOS_OAUTH_USERNAME, password=FARMOS_OAUTH_PASSWORD)
3052

3153
assert 'access_token' in token

0 commit comments

Comments
 (0)