def GET(request, pub_search=None, auth_search=None, key_search=None, tag_search=None): """Returns publications stored in the database. If called with a query string the publications will be searched, otherwise all publications will be returned.""" pub_parameters = None auth_parameters = None key_parameters = None tag_parameters = None if pub_search: pub_parameters = QueryDict(pub_search) if auth_search: auth_parameters = QueryDict(auth_search) if key_search: key_parameters = QueryDict(key_search) if tag_search: tag_parameters = QueryDict(tag_search) publication_list = search.search_publications(pub_parameters, auth_parameters, key_parameters, tag_parameters) if not access.validate_user_is_editor(request.user): publication_list = publication_list.exclude(review_status=Publication.IN_REVIEW_STATUS) values = {'publication_list': publication_list} response = RestView.render_response(request, 'publications', values) return response
def test_search_publications_by_title_and_doi_with_querydict(self): publication_query = QueryDict('title=1&doi=10.1.1.10&searchtype=and') publications = search_publications(publication_terms=publication_query) self.assertListEqual([self.pub1], list(publications))
def test_search_without_matching_query(self): publication_query = {'title': 'no in database'} publications = search_publications(publication_terms=publication_query) self.assertListEqual([], list(publications))
def test_search_publications_by_title_or_doi(self): publication_query = {'title': '1', 'doi': '10.1.1.10', 'searchtype': 'or'} publications = search_publications(publication_terms=publication_query) self.assertListEqual([self.pub1, self.pub2], list(publications))
def test_search_publications_by_title(self): publication_query = {'title': '1'} publications = search_publications(publication_terms=publication_query) self.assertListEqual([self.pub1], list(publications))
def test_search_publications_by_tag(self): tag_query = {'name': 'parallel'} publications = search_publications(tag_terms=tag_query) self.assertListEqual([self.pub2], list(publications))
def test_search_publication_by_author(self): author_query = {'name': 'author'} publications = search_publications(author_terms=author_query) self.assertListEqual([self.pub1, self.pub2], list(publications))
def test_search_publications_by_keyword(self): keyword_query = {'keyword': 'AI'} publications = search_publications(keyword_terms=keyword_query) self.assertListEqual([self.pub1], list(publications))