Skip to content

Commit eadd72c

Browse files
committed
Fixes for MyPy and preexisting unit tests
1 parent 037ae53 commit eadd72c

File tree

5 files changed

+22
-16
lines changed

5 files changed

+22
-16
lines changed

src/mavedb/routers/collections.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
from mavedb import deps
1212
from mavedb.lib.authentication import UserData, get_current_user
13-
from mavedb.lib.authorization import require_current_user_with_email
13+
from mavedb.lib.authorization import require_current_user, require_current_user_with_email
1414
from mavedb.lib.logging import LoggedRoute
1515
from mavedb.lib.logging.context import (
1616
format_raised_exception_info_as_dict,
@@ -46,7 +46,7 @@
4646
def list_my_collections(
4747
*,
4848
db: Session = Depends(deps.get_db),
49-
user_data: Optional[UserData] = Depends(get_current_user),
49+
user_data: UserData = Depends(require_current_user),
5050
) -> Dict[str, Sequence[Collection]]:
5151
"""
5252
List my collections.
@@ -685,7 +685,7 @@ async def add_user_to_collection_role(
685685
)
686686
# A user can only be in one role per collection, so remove from any other roles
687687
elif collection_user_association:
688-
item.users.remove(User)
688+
item.users.remove(user)
689689

690690
setattr(user, "role", role)
691691
item.users.append(user)
@@ -762,7 +762,7 @@ async def remove_user_from_collection_role(
762762
assert_permission(user_data, item, Action.ADD_ROLE)
763763

764764
# Since this is a post request, user should not already be in this role
765-
if collection_user_association.contribution_role != role:
765+
if collection_user_association is not None and collection_user_association.contribution_role != role:
766766
logger.info(
767767
msg="Failed to remove user from collection role; the requested user does not currently hold the requested role for this collection.",
768768
extra=logging_context(),

src/mavedb/routers/permissions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ async def check_permission(
5050
"""
5151
save_to_logging_context({"requested_resource": urn})
5252

53-
item: Optional[Union[ExperimentSet, Experiment, ScoreSet]] = None
53+
item: Optional[Union[Collection, ExperimentSet, Experiment, ScoreSet]] = None
5454

5555
if model_name == ModelName.experiment_set:
5656
item = db.query(ExperimentSet).filter(ExperimentSet.urn == urn).one_or_none()

src/mavedb/view_models/collection.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,16 @@ class CollectionBase(BaseModel):
3333
)
3434

3535

36-
class CollectionModify(CollectionBase):
36+
class CollectionModify(BaseModel):
3737
# all fields should be optional, because the client should specify only the fields they want to update
3838
private: Optional[bool] = Field(
3939
description="Whether the collection is visible to all MaveDB users. If set during collection update, input ignored unless requesting user is collection admin."
4040
)
4141
name: Optional[str]
42+
description: Optional[str]
43+
badge_name: Optional[str] = Field(
44+
description="Badge name. Input ignored unless requesting user has MaveDB admin privileges."
45+
)
4246

4347

4448
class CollectionCreate(CollectionBase):

tests/helpers/constants.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@
193193
# keys to be set after receiving response
194194
"urn": None,
195195
"experimentSetUrn": None,
196+
"officialCollections": [],
196197
}
197198

198199
TEST_EXPERIMENT_WITH_KEYWORD_RESPONSE = {
@@ -227,6 +228,7 @@
227228
# keys to be set after receiving response
228229
"urn": None,
229230
"experimentSetUrn": None,
231+
"officialCollections": [],
230232
}
231233

232234
TEST_EXPERIMENT_WITH_KEYWORD_HAS_DUPLICATE_OTHERS_RESPONSE = {
@@ -270,6 +272,7 @@
270272
# keys to be set after receiving response
271273
"urn": None,
272274
"experimentSetUrn": None,
275+
"officialCollections": [],
273276
}
274277

275278
TEST_TAXONOMY = {
@@ -402,6 +405,7 @@
402405
# keys to be set after receiving response
403406
"urn": None,
404407
"processingState": ProcessingState.incomplete.name,
408+
"officialCollections": [],
405409
}
406410

407411
TEST_MINIMAL_ACC_SCORESET = {
@@ -473,6 +477,7 @@
473477
# keys to be set after receiving response
474478
"urn": None,
475479
"processingState": ProcessingState.incomplete.name,
480+
"officialCollections": [],
476481
}
477482

478483
TEST_CDOT_TRANSCRIPT = {

tests/routers/test_permissions.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,8 @@ def test_cannot_get_permission_with_wrong_action_in_experiment_set(client, setup
6565
assert response.status_code == 422
6666
response_data = response.json()
6767
assert (
68-
response_data["detail"][0]["msg"] == "value is not a valid enumeration member; permitted: 'read', "
69-
"'update', 'delete', 'add_experiment', 'add_score_set', 'set_scores',"
70-
" 'add_role', 'publish'"
68+
response_data["detail"][0]["msg"] == "value is not a valid enumeration member; permitted: 'lookup', 'read', "
69+
"'update', 'delete', 'add_experiment', 'add_score_set', 'set_scores', 'add_role', 'publish', 'add_badge'"
7170
)
7271

7372

@@ -210,9 +209,8 @@ def test_cannot_get_permission_with_wrong_action_in_experiment(client, setup_rou
210209
assert response.status_code == 422
211210
response_data = response.json()
212211
assert (
213-
response_data["detail"][0]["msg"] == "value is not a valid enumeration member; permitted: 'read', "
214-
"'update', 'delete', 'add_experiment', 'add_score_set', 'set_scores',"
215-
" 'add_role', 'publish'"
212+
response_data["detail"][0]["msg"] == "value is not a valid enumeration member; permitted: 'lookup', 'read', "
213+
"'update', 'delete', 'add_experiment', 'add_score_set', 'set_scores', 'add_role', 'publish', 'add_badge'"
216214
)
217215

218216

@@ -347,9 +345,8 @@ def test_cannot_get_permission_with_wrong_action_in_score_set(client, setup_rout
347345
assert response.status_code == 422
348346
response_data = response.json()
349347
assert (
350-
response_data["detail"][0]["msg"] == "value is not a valid enumeration member; permitted: 'read', "
351-
"'update', 'delete', 'add_experiment', 'add_score_set', 'set_scores',"
352-
" 'add_role', 'publish'"
348+
response_data["detail"][0]["msg"] == "value is not a valid enumeration member; permitted: 'lookup', 'read', "
349+
"'update', 'delete', 'add_experiment', 'add_score_set', 'set_scores', 'add_role', 'publish', 'add_badge'"
353350
)
354351

355352

@@ -369,5 +366,5 @@ def test_cannot_get_permission_with_non_existing_item(client, setup_router_db):
369366
response_data = response.json()
370367
assert (
371368
response_data["detail"][0]["msg"] == "value is not a valid enumeration member; permitted: "
372-
"'experiment', 'experiment-set', 'score-set'"
369+
"'collection', 'experiment', 'experiment-set', 'score-set'"
373370
)

0 commit comments

Comments
 (0)