コード例 #1
0
def test_can_undo_review(db, dummy_contribution, dummy_user, is1, fs1, ok1,
                         is2, fs2, ok2):
    from indico.modules.events.editing.operations import InvalidEditableState, undo_review
    editable = Editable(contribution=dummy_contribution,
                        type=EditableType.paper)
    rev1 = EditingRevision(editable=editable,
                           submitter=dummy_user,
                           initial_state=is1,
                           final_state=fs1)
    if is2 is not None:
        rev2 = EditingRevision(editable=editable,
                               submitter=dummy_user,
                               initial_state=is2,
                               final_state=fs2)
    db.session.flush()

    if ok1:
        undo_review(rev1)
    else:
        pytest.raises(InvalidEditableState, undo_review, rev1)

    if is2 is not None:
        if ok2:
            undo_review(rev2)
        else:
            pytest.raises(InvalidEditableState, undo_review, rev2)

    db.session.expire(
        editable)  # so a deleted revision shows up in the relationship
    if ok1:
        assert rev1.final_state == FinalRevisionState.none
        assert len(editable.revisions) == 1
    elif ok2:
        assert rev2.final_state == FinalRevisionState.none
        assert len(editable.revisions) == 2
コード例 #2
0
def test_cannot_undo_review_old_rev(dummy_contribution, dummy_user):
    from indico.modules.events.editing.operations import InvalidEditableState, undo_review
    editable = Editable(contribution=dummy_contribution, type=EditableType.paper)
    rev1 = EditingRevision(editable=editable, submitter=dummy_user,
                           initial_state=InitialRevisionState.ready_for_review,
                           final_state=FinalRevisionState.needs_submitter_confirmation, reviewed_dt=now_utc())
    rev2 = EditingRevision(editable=editable, submitter=dummy_user,
                           initial_state=InitialRevisionState.needs_submitter_confirmation,
                           final_state=FinalRevisionState.needs_submitter_changes, reviewed_dt=now_utc())
    rev3 = EditingRevision(editable=editable, submitter=dummy_user,
                           initial_state=InitialRevisionState.ready_for_review)
    with pytest.raises(InvalidEditableState):
        undo_review(rev1)
    with pytest.raises(InvalidEditableState):
        undo_review(rev2)
    undo_review(rev3)
コード例 #3
0
 def _process(self):
     undo_review(self.revision)
     return '', 204