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))