Esempio n. 1
0
def test_urifilter_inactive_when_no_uri_param():
    """
    When there's no `uri` parameter, return None.
    """
    urifilter = query.UriFilter()

    assert urifilter({"foo": "bar"}) is None
Esempio n. 2
0
def test_urifilter_expands_and_normalizes_into_terms_filter(storage, uri):
    """
    Uses a `terms` filter against target.scope to filter for URI.

    UriFilter should use a `terms` filter against the normalized version of the
    target source field, which we store in `target.scope`.

    It should expand the input URI before searching, and normalize the results
    of the expansion.
    """
    storage.expand_uri.side_effect = lambda x: [
        "http://giraffes.com/",
        "https://elephants.com/",
    ]
    uri.normalize.side_effect = lambda x: x[:-1]  # Strip the trailing slash
    urifilter = query.UriFilter()

    result = urifilter({"uri": "http://example.com/"})

    storage.expand_uri.assert_called_with("http://example.com/")

    assert result == {
        "terms": {
            "target.scope": ["http://giraffes.com", "https://elephants.com"]
        }
    }
Esempio n. 3
0
File: core.py Progetto: openbizgit/h
 def make_builder():
     builder = query.Builder()
     builder.append_filter(query.AuthFilter(request, private=private))
     builder.append_filter(query.UriFilter())
     builder.append_filter(
         lambda _: nipsa.nipsa_filter(request.authenticated_userid))
     builder.append_filter(query.GroupFilter())
     builder.append_matcher(query.AnyMatcher())
     builder.append_matcher(query.TagsMatcher())
     return builder
Esempio n. 4
0
def default_querybuilder(request, private=True):
    builder = query.Builder()
    builder.append_filter(query.AuthFilter(request, private=private))
    builder.append_filter(query.UriFilter(request))
    builder.append_filter(query.GroupFilter())
    builder.append_matcher(query.AnyMatcher())
    builder.append_matcher(query.TagsMatcher())
    for factory in request.registry.get(FILTERS_KEY, []):
        builder.append_filter(factory(request))
    for factory in request.registry.get(MATCHERS_KEY, []):
        builder.append_matcher(factory(request))
    return builder