def test_start_page(self):
     
     request_values = CombinedMultiDict([ImmutableMultiDict([('page', '2')]), ImmutableMultiDict([])])
     expected = deepcopy(QueryBuilderSimple.DEFAULT_COMPONENTS)
     expected['start'] = str((int(request_values.get('page')) - 1) * int(config.SEARCH_DEFAULT_ROWS))
     actual = QueryBuilderSimple.build(request_values)
     self.assertEqual(actual, expected)
 def test_re_sort_and_sort_dir(self):
     
     request_values = CombinedMultiDict([ImmutableMultiDict([('re_sort_type', 'RELEVANCE'), ('re_sort_dir', 'asc')]), ImmutableMultiDict([])])
     expected = deepcopy(QueryBuilderSimple.DEFAULT_COMPONENTS)
     expected['sort'] = ('score','asc')
     actual = QueryBuilderSimple.build(request_values)
     self.assertEqual(actual, expected)
Exemple #3
0
def tab_list(bibcode, list_type):

    #I get the document
    solrdoc = get_document(bibcode)

    #if there are no references I return a 404
    if not solrdoc or not solrdoc.has_assoc_list(list_type):
        abort(404)

    #I get the additional metadata
    inveniodoc = invenio.get_invenio_metadata(bibcode)

    #I parse the get options 
    query_components = QueryBuilderSimple.build(request.values, list_type=list_type)

    # use the appropriate getter method
    list_method = getattr(solrdoc, "get_%s" % list_type)
    if not list_method:
        abort(404)

    #I get the list of associated docs
    resp = list_method(**query_components)
    
    # log the request
    abstract_view_signal.send(abs_blueprint, bibcode=bibcode, type=list_type)
    
    return render_template('abstract_tabs.html', solrdoc=solrdoc, inveniodoc=inveniodoc, curview=list_type, article_list=resp)
Exemple #4
0
def tab_list(bibcode, list_type):

    solrdoc = get_document(bibcode)

    # if there are no references return a 404
    if not solrdoc or not solrdoc.has_assoc_list(list_type):
        abort(404)

    denormdoc = denormalize_solr_doc(solrdoc)

    # parse the get options
    query_components = QueryBuilderSimple.build(request.values, list_type=list_type)

    # use the appropriate getter method
    list_method = getattr(solrdoc, "get_%s" % list_type)
    if not list_method:
        abort(404)

    # get the list of associated docs
    resp = list_method(**query_components)

    # log the request
    abstract_view_signal.send(abs_blueprint, bibcode=bibcode, list_type=list_type)
    statsd.incr("abs.%s.viewed" % list_type)

    return render_template(
        "abstract_tabs.html", solrdoc=solrdoc, denormdoc=denormdoc, curview=list_type, article_list=resp
    )
 def test_no_parameters_from_request(self):
     request_values = CombinedMultiDict([ImmutableMultiDict([]), ImmutableMultiDict([])])
     expected = deepcopy(QueryBuilderSimple.DEFAULT_COMPONENTS)
     actual = QueryBuilderSimple.build(request_values)
     self.assertEqual(actual, expected)
 def test_re_sort(self):
     request_values = CombinedMultiDict([ImmutableMultiDict([('re_sort_type', 'RELEVANCE')]), ImmutableMultiDict([])])
     expected = deepcopy(QueryBuilderSimple.DEFAULT_COMPONENTS)
     expected['sort'] = [('score', 'desc'), config.SEARCH_DEFAULT_SECONDARY_SORT]
     actual = QueryBuilderSimple.build(request_values)
     self.assertEqual(actual, expected)