SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit d757c12f authored by Jorran de Wit's avatar Jorran de Wit
Browse files

Add tests for submission listview

parent f5d0014a
No related branches found
No related tags found
No related merge requests found
...@@ -6,6 +6,9 @@ STATUS_AWAITING_ED_REC = 'awaiting_ed_rec' ...@@ -6,6 +6,9 @@ STATUS_AWAITING_ED_REC = 'awaiting_ed_rec'
STATUS_REVIEW_CLOSED = 'review_closed' STATUS_REVIEW_CLOSED = 'review_closed'
STATUS_ACCEPTED = 'accepted' STATUS_ACCEPTED = 'accepted'
STATUS_PUBLISHED = 'published' STATUS_PUBLISHED = 'published'
STATUS_RESUBMITTED = 'resubmitted'
STATUS_RESUBMITTED_REJECTED = 'resubmitted_and_rejected'
STATUS_RESUBMITTED_REJECTED_VISIBLE = 'resubmitted_and_rejected_visible'
SUBMISSION_STATUS = ( SUBMISSION_STATUS = (
(STATUS_UNASSIGNED, 'Unassigned, undergoing pre-screening'), (STATUS_UNASSIGNED, 'Unassigned, undergoing pre-screening'),
(STATUS_RESUBMISSION_INCOMING, 'Resubmission incoming'), (STATUS_RESUBMISSION_INCOMING, 'Resubmission incoming'),
...@@ -14,9 +17,9 @@ SUBMISSION_STATUS = ( ...@@ -14,9 +17,9 @@ SUBMISSION_STATUS = (
(STATUS_REVIEW_CLOSED, 'Review period closed, editorial recommendation pending'), (STATUS_REVIEW_CLOSED, 'Review period closed, editorial recommendation pending'),
# If revisions required: resubmission creates a new Submission object # If revisions required: resubmission creates a new Submission object
(STATUS_REVISION_REQUESTED, 'Editor-in-charge has requested revision'), (STATUS_REVISION_REQUESTED, 'Editor-in-charge has requested revision'),
('resubmitted', 'Has been resubmitted'), (STATUS_RESUBMITTED, 'Has been resubmitted'),
('resubmitted_and_rejected', 'Has been resubmitted and subsequently rejected'), (STATUS_RESUBMITTED_REJECTED, 'Has been resubmitted and subsequently rejected'),
('resubmitted_and_rejected_visible', (STATUS_RESUBMITTED_REJECTED_VISIBLE,
'Has been resubmitted and subsequently rejected (still publicly visible)'), 'Has been resubmitted and subsequently rejected (still publicly visible)'),
# If acceptance/rejection: # If acceptance/rejection:
('voting_in_preparation', 'Voting in preparation (eligible Fellows being selected)'), ('voting_in_preparation', 'Voting in preparation (eligible Fellows being selected)'),
......
...@@ -8,7 +8,7 @@ from journals.constants import SCIPOST_JOURNALS_DOMAINS ...@@ -8,7 +8,7 @@ from journals.constants import SCIPOST_JOURNALS_DOMAINS
from common.helpers import random_arxiv_identifier_without_version_number, random_scipost_journal from common.helpers import random_arxiv_identifier_without_version_number, random_scipost_journal
from .constants import STATUS_UNASSIGNED, STATUS_EIC_ASSIGNED, STATUS_RESUBMISSION_INCOMING,\ from .constants import STATUS_UNASSIGNED, STATUS_EIC_ASSIGNED, STATUS_RESUBMISSION_INCOMING,\
STATUS_PUBLISHED, SUBMISSION_TYPE STATUS_PUBLISHED, SUBMISSION_TYPE, STATUS_RESUBMITTED
from .models import Submission from .models import Submission
from faker import Faker from faker import Faker
...@@ -71,9 +71,7 @@ class SubmissionFactory(factory.django.DjangoModelFactory): ...@@ -71,9 +71,7 @@ class SubmissionFactory(factory.django.DjangoModelFactory):
class UnassignedSubmissionFactory(SubmissionFactory): class UnassignedSubmissionFactory(SubmissionFactory):
''' '''This Submission is a 'new request' by a Contributor for its Submission.'''
This Submission is a 'new request' by a Contributor for its Submission.
'''
status = STATUS_UNASSIGNED status = STATUS_UNASSIGNED
...@@ -92,18 +90,28 @@ class EICassignedSubmissionFactory(SubmissionFactory): ...@@ -92,18 +90,28 @@ class EICassignedSubmissionFactory(SubmissionFactory):
class ResubmittedSubmissionFactory(SubmissionFactory): class ResubmittedSubmissionFactory(SubmissionFactory):
''' '''This Submission is a `resubmitted` version.'''
status = STATUS_RESUBMITTED
open_for_commenting = False
open_for_reporting = False
is_current = False
is_resubmission = False
class ResubmissionFactory(SubmissionFactory):
"""
This Submission is a newer version of a Submission which is This Submission is a newer version of a Submission which is
already known by the SciPost database. already known by the SciPost database.
''' """
status = STATUS_RESUBMISSION_INCOMING status = STATUS_RESUBMISSION_INCOMING
open_for_commenting = True open_for_commenting = True
open_for_reporting = True open_for_reporting = True
is_resubmission = True is_resubmission = True
@factory.post_generation @factory.post_generation
def alter_arxiv_fields(self, create, extracted, **kwargs): def fill_arxiv_fields(self, create, extracted, **kwargs):
'''Alter arxiv fields to save as version 2.''' '''Fill empty arxiv fields.'''
self.arxiv_link = 'https://arxiv.org/abs/%s' % self.arxiv_identifier_wo_vn_nr
self.arxiv_identifier_w_vn_nr = '%sv2' % self.arxiv_identifier_wo_vn_nr self.arxiv_identifier_w_vn_nr = '%sv2' % self.arxiv_identifier_wo_vn_nr
self.arxiv_vn_nr = 2 self.arxiv_vn_nr = 2
......
...@@ -9,7 +9,7 @@ from scipost.models import Contributor ...@@ -9,7 +9,7 @@ from scipost.models import Contributor
from .constants import STATUS_UNASSIGNED, STATUS_RESUBMISSION_INCOMING, STATUS_AWAITING_ED_REC,\ from .constants import STATUS_UNASSIGNED, STATUS_RESUBMISSION_INCOMING, STATUS_AWAITING_ED_REC,\
STATUS_EIC_ASSIGNED, CYCLE_DEFAULT, CYCLE_DIRECT_REC STATUS_EIC_ASSIGNED, CYCLE_DEFAULT, CYCLE_DIRECT_REC
from .exceptions import CycleUpdateDeadlineError from .exceptions import CycleUpdateDeadlineError
from .factories import UnassignedSubmissionFactory, ResubmittedSubmissionFactory from .factories import UnassignedSubmissionFactory, ResubmissionFactory
from .utils import GeneralSubmissionCycle from .utils import GeneralSubmissionCycle
...@@ -69,7 +69,7 @@ class TestResubmissionSubmissionCycle(TestCase): ...@@ -69,7 +69,7 @@ class TestResubmissionSubmissionCycle(TestCase):
self.submission_date = datetime.date.today() self.submission_date = datetime.date.today()
add_groups_and_permissions() add_groups_and_permissions()
ContributorFactory.create_batch(5) ContributorFactory.create_batch(5)
self.submission = ResubmittedSubmissionFactory( self.submission = ResubmissionFactory(
dates__submission=self.submission_date dates__submission=self.submission_date
) )
...@@ -108,7 +108,7 @@ class TestResubmissionDirectSubmissionCycle(TestCase): ...@@ -108,7 +108,7 @@ class TestResubmissionDirectSubmissionCycle(TestCase):
self.submission_date = datetime.date.today() self.submission_date = datetime.date.today()
add_groups_and_permissions() add_groups_and_permissions()
ContributorFactory.create_batch(5) ContributorFactory.create_batch(5)
self.submission = ResubmittedSubmissionFactory( self.submission = ResubmissionFactory(
dates__submission=self.submission_date, dates__submission=self.submission_date,
refereeing_cycle=CYCLE_DIRECT_REC refereeing_cycle=CYCLE_DIRECT_REC
) )
......
...@@ -4,12 +4,15 @@ from django.core.urlresolvers import reverse ...@@ -4,12 +4,15 @@ from django.core.urlresolvers import reverse
from django.test import TestCase from django.test import TestCase
from django.test import Client from django.test import Client
from common.helpers import random_arxiv_identifier_without_version_number
from common.helpers.test import add_groups_and_permissions from common.helpers.test import add_groups_and_permissions
from scipost.factories import ContributorFactory from scipost.factories import ContributorFactory
# from scipost.models import Contributor # from scipost.models import Contributor
from .constants import STATUS_UNASSIGNED from .constants import STATUS_UNASSIGNED
from .factories import EICassignedSubmissionFactory from .factories import UnassignedSubmissionFactory, EICassignedSubmissionFactory,\
ResubmittedSubmissionFactory, ResubmissionFactory,\
PublishedSubmissionFactory
from .forms import SubmissionForm, SubmissionIdentifierForm from .forms import SubmissionForm, SubmissionIdentifierForm
from .models import Submission from .models import Submission
...@@ -204,3 +207,31 @@ class SubmissionDetailTest(BaseContributorTestCase): ...@@ -204,3 +207,31 @@ class SubmissionDetailTest(BaseContributorTestCase):
def test_status_code_200(self): def test_status_code_200(self):
response = self.client.get(self.target) response = self.client.get(self.target)
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
class SubmissionListTest(BaseContributorTestCase):
def test_public_list_view(self):
# Create invisible Submissions.
arxiv_id_resubmission = random_arxiv_identifier_without_version_number()
UnassignedSubmissionFactory.create()
ResubmissionFactory.create(arxiv_identifier_wo_vn_nr=arxiv_id_resubmission)
# Create visible submissions
visible_submission_ids = []
visible_submission_ids.append(ResubmittedSubmissionFactory
.create(arxiv_identifier_wo_vn_nr=arxiv_id_resubmission).id)
visible_submission_ids.append(EICassignedSubmissionFactory.create().id)
visible_submission_ids.append(PublishedSubmissionFactory.create().id)
# Check with hardcoded URL as this url shouldn't change!
client = Client()
response = client.get('/submissions/')
self.assertEqual(response.status_code, 200)
# Check submissions returned
returned_submissions_ids = [sub.id for sub in response.context['object_list']]
# Check if submission lists are equal
returned_submissions_ids.sort()
visible_submission_ids.sort()
self.assertListEqual(returned_submissions_ids, visible_submission_ids)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment