示例#1
0
文件: query.py 项目: hypothesis/h
    def __call__(self, search, params):
        # If there are no uris to search for there is nothing to do so return early.
        if not ("uri" in params or "url" in params or "wildcard_uri" in params):
            return search

        if self.separate_keys:
            uris = [
                add_default_scheme(u)
                for u in popall(params, "uri") + popall(params, "url")
            ]
            wildcard_uris = [
                add_default_scheme(u) for u in popall(params, "wildcard_uri")
            ]
        else:
            uris = [
                add_default_scheme(u)
                for u in popall(params, "uri") + popall(params, "url")
            ]
            # Split into wildcard uris and non wildcard uris.
            wildcard_uris = [u for u in uris if "*" in u or "_" in u]
            uris = [u for u in uris if "*" not in u and "_" not in u]

        # Only add valid uri's to the search list.
        wildcard_uris = self._normalize_uris(
            [u for u in wildcard_uris if wildcard_uri_is_valid(u)],
            normalize_method=self._wildcard_uri_normalized,
        )
        uris = self._normalize_uris(uris)

        queries = []
        if wildcard_uris:
            queries = [Q("wildcard", **{"target.scope": u}) for u in wildcard_uris]
        if uris:
            queries.append(Q("terms", **{"target.scope": uris}))
        return search.query("bool", should=queries)
示例#2
0
文件: annotation.py 项目: kaydoh/h
def _validate_wildcard_uri(node, value):
    """Raise if wildcards are within the domain of the uri."""
    for val in value:
        if not wildcard_uri_is_valid(val):
            raise colander.Invalid(
                node,
                """Wildcards (_ and *) are not permitted within the
                domain of wildcard_uri""",
            )
示例#3
0
def _validate_wildcard_uri(node, value):
    """Raise if wildcards are within the domain of the uri."""
    for val in value:
        if not wildcard_uri_is_valid(val):
            raise colander.Invalid(
                node,
                """Wildcards (_ and *) are not permitted within the
                domain of wildcard_uri""",
            )
示例#4
0
    def __call__(self, search, params):
        # If there are no uris to search for there is nothing to do so return early.
        if not ("uri" in params or "url" in params
                or "wildcard_uri" in params):
            return search

        if self.separate_keys:
            uris = [
                add_default_scheme(u)
                for u in popall(params, "uri") + popall(params, "url")
            ]
            wildcard_uris = [
                add_default_scheme(u) for u in popall(params, "wildcard_uri")
            ]
        else:
            uris = [
                add_default_scheme(u)
                for u in popall(params, "uri") + popall(params, "url")
            ]
            # Split into wildcard uris and non wildcard uris.
            wildcard_uris = [u for u in uris if "*" in u or "_" in u]
            uris = [u for u in uris if "*" not in u and "_" not in u]

        # Only add valid uri's to the search list.
        wildcard_uris = self._normalize_uris(
            [u for u in wildcard_uris if wildcard_uri_is_valid(u)],
            normalize_method=self._wildcard_uri_normalized,
        )
        uris = self._normalize_uris(uris)

        queries = []
        if wildcard_uris:
            queries = [
                Q("wildcard", **{"target.scope": u}) for u in wildcard_uris
            ]
        if uris:
            queries.append(Q("terms", **{"target.scope": uris}))
        return search.query("bool", should=queries)
示例#5
0
def test_identifies_wildcard_uri_is_valid(wildcard_uri, expected):
    assert util.wildcard_uri_is_valid(wildcard_uri) == expected
示例#6
0
文件: util_test.py 项目: hypothesis/h
def test_identifies_wildcard_uri_is_valid(wildcard_uri, expected):
    assert util.wildcard_uri_is_valid(wildcard_uri) == expected