Loading portal/facade/reviews_facade.py +2 −2 Original line number Diff line number Diff line Loading @@ -26,8 +26,8 @@ class ReviewsFacade(GeneralCRUDFacade): .create_review_items(author=author, items=items) def update_item(self, item: ReviewItem, **data): return self._service(review=item.review).update_item(item, **data) return self._service(item.review).update_item(item, **data) def delete_item(self, item: ReviewItem): return self._service(review=item.review).delete(item) return self._service(item.review).delete(item) portal/rest/schemas.py +8 −0 Original line number Diff line number Diff line Loading @@ -483,6 +483,14 @@ class Schemas: def review(self, **kwargs): return self.__get_schema(ReviewSchema, **kwargs) @fn_name def review_items(self, **kwargs): return self.__get_schema(ReviewItemSchema, many=True, **kwargs) @fn_name def review_item(self, **kwargs): return self.__get_schema(ReviewItemSchema, **kwargs) @fn_name def courses(self, **kwargs): return self.__get_schema(CourseSchema, many=True, **kwargs) Loading portal/rest/submissions.py +3 −3 Original line number Diff line number Diff line Loading @@ -344,12 +344,12 @@ class SubmissionReviewItem(CustomResource): course = submission.project.course perm_service = self.permissions(course=course) perm_service.require.write_review_for_submission(submission) data = rest_helpers.parse_request_data(action='update', resource='review') data = rest_helpers.parse_request_data(action='update', resource='review_item') log.info(f"[REST] Update submission review item for {submission.log_name} by " f"{self.client.log_name}: {data}") item = self.find.review_item(rid) review = self.facades.reviews.update_item(item=item, **data) return SCHEMAS.dump('review', review), 201 return SCHEMAS.dump('review', review), 204 @jwt_required @access_log Loading @@ -363,4 +363,4 @@ class SubmissionReviewItem(CustomResource): f"{self.client.log_name}") item = self.find.review_item(rid) review = self.facades.reviews.delete_item(item=item) return SCHEMAS.dump('review', review), 201 return SCHEMAS.dump('review', review), 204 tests/conftest.py +11 −2 Original line number Diff line number Diff line Loading @@ -4,8 +4,7 @@ import pytest from management.data import DataManagement from portal import create_app, db from portal.database import ProjectConfig from portal.logger import Logging from portal.database import ProjectConfig, Review, Submission from tests.utils.ent_mocker import EntitiesMocker Loading Loading @@ -85,6 +84,16 @@ def created_student(rest_service): return rest_service.find.user('student1') @pytest.fixture() def created_submission(rest_service, created_project) -> Submission: return created_project.submissions[0] @pytest.fixture() def created_review(rest_service) -> Review: return Review.query.all()[0] @pytest.fixture() def created_admin(rest_service): return rest_service.find.user('admin') Loading tests/rest/rest_tools.py +1 −0 Original line number Diff line number Diff line Loading @@ -258,6 +258,7 @@ def assert_review_items(expected: list, actual: dict): def assert_review(expected: Review, actual: dict): assert expected is not None assert expected.id == actual['id'] assert expected.submission_id == actual['submission']['id'] assert_review_items(expected.review_items, actual['review_items']) Loading Loading
portal/facade/reviews_facade.py +2 −2 Original line number Diff line number Diff line Loading @@ -26,8 +26,8 @@ class ReviewsFacade(GeneralCRUDFacade): .create_review_items(author=author, items=items) def update_item(self, item: ReviewItem, **data): return self._service(review=item.review).update_item(item, **data) return self._service(item.review).update_item(item, **data) def delete_item(self, item: ReviewItem): return self._service(review=item.review).delete(item) return self._service(item.review).delete(item)
portal/rest/schemas.py +8 −0 Original line number Diff line number Diff line Loading @@ -483,6 +483,14 @@ class Schemas: def review(self, **kwargs): return self.__get_schema(ReviewSchema, **kwargs) @fn_name def review_items(self, **kwargs): return self.__get_schema(ReviewItemSchema, many=True, **kwargs) @fn_name def review_item(self, **kwargs): return self.__get_schema(ReviewItemSchema, **kwargs) @fn_name def courses(self, **kwargs): return self.__get_schema(CourseSchema, many=True, **kwargs) Loading
portal/rest/submissions.py +3 −3 Original line number Diff line number Diff line Loading @@ -344,12 +344,12 @@ class SubmissionReviewItem(CustomResource): course = submission.project.course perm_service = self.permissions(course=course) perm_service.require.write_review_for_submission(submission) data = rest_helpers.parse_request_data(action='update', resource='review') data = rest_helpers.parse_request_data(action='update', resource='review_item') log.info(f"[REST] Update submission review item for {submission.log_name} by " f"{self.client.log_name}: {data}") item = self.find.review_item(rid) review = self.facades.reviews.update_item(item=item, **data) return SCHEMAS.dump('review', review), 201 return SCHEMAS.dump('review', review), 204 @jwt_required @access_log Loading @@ -363,4 +363,4 @@ class SubmissionReviewItem(CustomResource): f"{self.client.log_name}") item = self.find.review_item(rid) review = self.facades.reviews.delete_item(item=item) return SCHEMAS.dump('review', review), 201 return SCHEMAS.dump('review', review), 204
tests/conftest.py +11 −2 Original line number Diff line number Diff line Loading @@ -4,8 +4,7 @@ import pytest from management.data import DataManagement from portal import create_app, db from portal.database import ProjectConfig from portal.logger import Logging from portal.database import ProjectConfig, Review, Submission from tests.utils.ent_mocker import EntitiesMocker Loading Loading @@ -85,6 +84,16 @@ def created_student(rest_service): return rest_service.find.user('student1') @pytest.fixture() def created_submission(rest_service, created_project) -> Submission: return created_project.submissions[0] @pytest.fixture() def created_review(rest_service) -> Review: return Review.query.all()[0] @pytest.fixture() def created_admin(rest_service): return rest_service.find.user('admin') Loading
tests/rest/rest_tools.py +1 −0 Original line number Diff line number Diff line Loading @@ -258,6 +258,7 @@ def assert_review_items(expected: list, actual: dict): def assert_review(expected: Review, actual: dict): assert expected is not None assert expected.id == actual['id'] assert expected.submission_id == actual['submission']['id'] assert_review_items(expected.review_items, actual['review_items']) Loading