def test_journals_with_published_issues_are_not_upcoming(self): # Setup JournalFactory.create_with_issue() # Run journals = Journal.upcoming_objects.all() # Check assert list(journals) == []
def test_only_main_collections_are_shown_by_default(self): collection = CollectionFactory.create() main_collection = CollectionFactory.create(is_main_collection=True) journal1 = JournalFactory.create_with_issue(collection=collection) journal2 = JournalFactory.create_with_issue(collection=main_collection) url = reverse('public:journal:journal_list') response = self.client.get(url) assert list(response.context['journals']) == [journal2]
def test_can_filter_the_journals_by_collections(self): # Setup col_1 = CollectionFactory(code='col1') col_2 = CollectionFactory(code='col2') JournalFactory.create_with_issue(collection=col_1) journal_2 = JournalFactory.create_with_issue(collection=col_2) url = reverse('public:journal:journal_list') # Run response = self.client.get(url, data={'collections': [ 'col2', ]}) # Check assert list(response.context['journals']) == [ journal_2, ]
def test_can_filter_the_journals_by_open_access(self): # Setup collection = CollectionFactory.create() journal_1 = JournalFactory.create_with_issue(collection=collection, open_access=True) JournalFactory.create(collection=collection, open_access=False) url = reverse('public:journal:journal_list') # Run response = self.client.get(url, data={'open_access': True}) # Check assert list(response.context['journals']) == [ journal_1, ]
def test_can_sort_journals_by_disciplines(self): # Setup collection = CollectionFactory.create() discipline_1 = DisciplineFactory.create(code='abc-discipline', name='ABC') discipline_2 = DisciplineFactory.create(code='def-discipline', name='DEF') discipline_3 = DisciplineFactory.create(code='ghi-discipline', name='GHI') journal_1 = JournalFactory.create_with_issue(collection=collection) journal_1.disciplines.add(discipline_1) journal_2 = JournalFactory.create_with_issue(collection=collection) journal_2.disciplines.add(discipline_1) journal_3 = JournalFactory.create_with_issue(collection=collection) journal_3.disciplines.add(discipline_2) journal_4 = JournalFactory.create_with_issue(collection=collection) journal_4.disciplines.add(discipline_3) journal_5 = JournalFactory.create_with_issue(collection=collection) journal_5.disciplines.add(discipline_3) journal_6 = JournalFactory.create_with_issue(collection=collection) journal_6.disciplines.add(discipline_3) url = reverse('public:journal:journal_list') # Run response = self.client.get(url, {'sorting': 'disciplines'}) # Check assert response.status_code == 200 assert len(response.context['sorted_objects']) == 3 assert response.context['sorted_objects'][0][ 'key'] == discipline_1.code assert response.context['sorted_objects'][0]['collections'][0][ 'key'] == collection assert response.context['sorted_objects'][0]['collections'][0][ 'objects'] == [ journal_1, journal_2, ] assert response.context['sorted_objects'][1][ 'key'] == discipline_2.code assert response.context['sorted_objects'][1]['collections'][0][ 'key'] == collection assert response.context['sorted_objects'][1]['collections'][0][ 'objects'] == [ journal_3, ] assert response.context['sorted_objects'][2][ 'key'] == discipline_3.code assert response.context['sorted_objects'][2]['collections'][0][ 'key'] == collection assert set(response.context['sorted_objects'][2]['collections'][0] ['objects']) == set([ journal_4, journal_5, journal_6, ])
def test_can_filter_the_journals_by_types(self): # Setup collection = CollectionFactory.create() jtype_1 = JournalType.objects.create(code='T1', name='T1') jtype_2 = JournalType.objects.create(code='T2', name='T2') JournalFactory.create(collection=collection, type=jtype_1) journal_2 = JournalFactory.create_with_issue(collection=collection, type=jtype_2) url = reverse('public:journal:journal_list') # Run response = self.client.get(url, data={'types': [ 'T2', ]}) # Check assert list(response.context['journals']) == [ journal_2, ]
def test_can_sort_journals_by_name(self): # Setup collection = CollectionFactory.create() journal_1 = JournalFactory.create_with_issue(collection=collection, name='ABC journal') journal_2 = JournalFactory.create_with_issue(collection=collection, name='ACD journal') journal_3 = JournalFactory.create_with_issue(collection=collection, name='DEF journal') journal_4 = JournalFactory.create_with_issue(collection=collection, name='GHI journal') journal_5 = JournalFactory.create_with_issue(collection=collection, name='GIJ journal') journal_6 = JournalFactory.create_with_issue(collection=collection, name='GJK journal') url = reverse('public:journal:journal_list') # Run response = self.client.get(url) # Check assert response.status_code == 200 assert len(response.context['sorted_objects']) == 3 assert response.context['sorted_objects'][0]['key'] == 'A' assert response.context['sorted_objects'][0]['objects'] == [ journal_1, journal_2, ] assert response.context['sorted_objects'][1]['key'] == 'D' assert response.context['sorted_objects'][1]['objects'] == [ journal_3, ] assert response.context['sorted_objects'][2]['key'] == 'G' assert response.context['sorted_objects'][2]['objects'] == [ journal_4, journal_5, journal_6, ]
def test_journals_with_published_and_unpublished_issues_are_not_upcoming(self): # Setup journal_1 = JournalFactory.create_with_issue() IssueFactory(journal=journal_1, is_published=False) # Test assert list(Journal.upcoming_objects.all()) == []