22from copy import deepcopy
33
44import jsonschema
5+ import pytest
56
67from mavedb .lib .validation .urn_re import MAVEDB_COLLECTION_URN_RE
8+ from mavedb .models .enums .contribution_role import ContributionRole
79from mavedb .view_models .collection import Collection
810from tests .helpers .constants import (
911 EXTRA_USER ,
@@ -48,7 +50,11 @@ def test_create_public_collection(client, setup_router_db):
4850 assert (key , expected_response [key ]) == (key , response_data [key ])
4951
5052
51- def test_add_collection_admin (client , setup_router_db ):
53+ @pytest .mark .parametrize (
54+ "role" ,
55+ ContributionRole ._member_names_
56+ )
57+ def test_add_collection_user_to_collection_role (role , client , setup_router_db ):
5258 collection = create_collection (client , {"private" : True })
5359
5460 response = client .post (f"/api/v1/collections/{ collection ['urn' ]} /admins" , json = {"orcid_id" : EXTRA_USER ["username" ]})
@@ -79,62 +85,6 @@ def test_add_collection_admin(client, setup_router_db):
7985 assert (key , expected_response [key ]) == (key , response_data [key ])
8086
8187
82- def test_add_collection_editor (client , setup_router_db ):
83- collection = create_collection (client )
84-
85- response = client .post (
86- f"/api/v1/collections/{ collection ['urn' ]} /editors" , json = {"orcid_id" : EXTRA_USER ["username" ]}
87- )
88- assert response .status_code == 200
89- response_data = response .json ()
90- expected_response = deepcopy (TEST_COLLECTION_RESPONSE )
91- expected_response .update (
92- {
93- "urn" : collection ["urn" ],
94- "badgeName" : None ,
95- "description" : None ,
96- "editors" : [
97- {
98- "firstName" : EXTRA_USER ["first_name" ],
99- "lastName" : EXTRA_USER ["last_name" ],
100- "orcidId" : EXTRA_USER ["username" ],
101- }
102- ],
103- }
104- )
105- assert sorted (expected_response .keys ()) == sorted (response_data .keys ())
106- for key in expected_response :
107- assert (key , expected_response [key ]) == (key , response_data [key ])
108-
109-
110- def test_add_collection_viewer (client , setup_router_db ):
111- collection = create_collection (client )
112-
113- response = client .post (
114- f"/api/v1/collections/{ collection ['urn' ]} /viewers" , json = {"orcid_id" : EXTRA_USER ["username" ]}
115- )
116- assert response .status_code == 200
117- response_data = response .json ()
118- expected_response = deepcopy (TEST_COLLECTION_RESPONSE )
119- expected_response .update (
120- {
121- "urn" : response_data ["urn" ],
122- "badgeName" : None ,
123- "description" : None ,
124- "viewers" : [
125- {
126- "firstName" : EXTRA_USER ["first_name" ],
127- "lastName" : EXTRA_USER ["last_name" ],
128- "orcidId" : EXTRA_USER ["username" ],
129- }
130- ],
131- }
132- )
133- assert sorted (expected_response .keys ()) == sorted (response_data .keys ())
134- for key in expected_response :
135- assert (key , expected_response [key ]) == (key , response_data [key ])
136-
137-
13888def test_creator_can_read_private_collection (session , client , setup_router_db , anonymous_app_overrides ):
13989 collection = create_collection (client )
14090
@@ -239,7 +189,6 @@ def test_unauthorized_user_cannot_read_private_collection(session, client, setup
239189
240190 with DependencyOverrider (extra_user_app_overrides ):
241191 response = client .get (f"/api/v1/collections/{ collection ['urn' ]} " )
242- # response = client.get(f"/api/v1/users/me")
243192
244193 assert response .status_code == 404
245194 assert f"collection with URN '{ collection ['urn' ]} ' not found" in response .json ()["detail" ]
@@ -250,7 +199,6 @@ def test_anonymous_cannot_read_private_collection(session, client, setup_router_
250199
251200 with DependencyOverrider (anonymous_app_overrides ):
252201 response = client .get (f"/api/v1/collections/{ collection ['urn' ]} " )
253- # response = client.get(f"/api/v1/users/me")
254202
255203 assert response .status_code == 404
256204 assert f"collection with URN '{ collection ['urn' ]} ' not found" in response .json ()["detail" ]
0 commit comments