Verified Commit cb89ca8f authored by Peter Stanko's avatar Peter Stanko
Browse files

Tests for update/delete review item also provided fix

parent 53ee5511
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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)
+8 −0
Original line number Diff line number Diff line
@@ -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)
+3 −3
Original line number Diff line number Diff line
@@ -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
@@ -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
+11 −2
Original line number Diff line number Diff line
@@ -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


@@ -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')
+1 −0
Original line number Diff line number Diff line
@@ -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