7
7
from uuid import uuid4
8
8
cfg = test_config ()
9
9
10
+
10
11
@pytest .mark .parametrize ('path' , (
11
12
'/api/V1/notifications' ,
12
13
'/api/V1/notifications?' ,
@@ -20,6 +21,7 @@ def test_server_get_paths_noauth(client, path):
20
21
assert data ['error' ].get ('http_status' ) == 'Forbidden'
21
22
assert 'Authentication token required' in data ['error' ].get ('message' )
22
23
24
+
23
25
@pytest .mark .parametrize ('path' , (
24
26
'/api/V1/notification' ,
25
27
'/api/V1/notification/global' ,
@@ -34,6 +36,7 @@ def test_server_post_paths_noauth(client, path):
34
36
assert data ['error' ].get ('http_status' ) == 'Forbidden'
35
37
assert 'Authentication token required' in data ['error' ].get ('message' )
36
38
39
+
37
40
def test_root (client ):
38
41
response = client .get ('/' )
39
42
data = json .loads (response .data )
@@ -42,11 +45,6 @@ def test_root(client):
42
45
assert 'service' in data and data ['service' ] == 'Notification Feeds Service'
43
46
assert 'version' in data
44
47
45
- def test_api_root (client ):
46
- response = client .get ('/api/V1' )
47
- data = json .loads (response .data )
48
- assert 'routes' in data
49
- assert len (data ['routes' ]) == 8
50
48
51
49
def test_permissions_noauth (client , requests_mock ):
52
50
response = client .get ('/permissions' )
@@ -56,6 +54,7 @@ def test_permissions_noauth(client, requests_mock):
56
54
assert 'permissions' in data
57
55
assert data ['permissions' ] == {'GET' : ['/api/V1/notifications/global' ], 'POST' : []}
58
56
57
+
59
58
def test_permissions_user (client , requests_mock , mock_valid_user_token ):
60
59
user_id = 'a_user'
61
60
user_name = 'A User'
@@ -102,4 +101,15 @@ def test_permissions_admin(client, requests_mock, mock_valid_admin_token):
102
101
valid_gets = set (['/api/V1/notifications/global' , '/api/V1/notifications' , '/api/V1/notification/<note_id>' ])
103
102
assert valid_gets == set (data ['permissions' ]['GET' ])
104
103
valid_posts = set (['/api/V1/notifications/see' , '/api/V1/notifications/unsee' , '/api/V1/notification/global' ])
105
- assert valid_posts == set (data ['permissions' ]['POST' ])
104
+ assert valid_posts == set (data ['permissions' ]['POST' ])
105
+
106
+
107
+ def test_permissions_bad_token (client , mock_invalid_user_token ):
108
+ user_id = 'bad_user'
109
+ mock_invalid_user_token (user_id )
110
+ response = client .get ('/permissions' , headers = {'Authorization' : 'bad_token-' + str (uuid4 ())})
111
+ data = json .loads (response .data )
112
+ assert 'token' in data
113
+ assert data ['token' ] == {'service' : None , 'user' : None , 'admin' : False }
114
+ assert 'permissions' in data
115
+ assert data ['permissions' ] == {'GET' : ['/api/V1/notifications/global' ], 'POST' : []}
0 commit comments