コード例 #1
0
def test_set_facets_negated_filter():
    from collections import OrderedDict
    from encoded.search import set_facets
    facets = [
        ('facet1', {'title': 'Facet 1'}),
    ]
    used_filters = OrderedDict((
        ('field2!', ['value1']),
    ))
    principals = ['group.admin']
    doc_types = ['Experiment']
    aggs = set_facets(facets, used_filters, principals, doc_types)

    assert {
        'facet1': {
            'aggs': {
                'facet1': {
                    'terms': {
                        'field': 'embedded.facet1.raw',
                        'min_doc_count': 0,
                        'size': 100,
                    },
                },
            },
            'filter': {
                'bool': {
                    'must': [
                        {'terms': {'principals_allowed.view': ['group.admin']}},
                        {'terms': {'*****@*****.**': ['Experiment']}},
                        {'not': {'terms': {'embedded.field2.raw': ['value1']}}},
                    ],
                },
            },
        }
    } == aggs
コード例 #2
0
def test_set_facets_negated_filter():
    from collections import OrderedDict
    from encoded.search import set_facets
    facets = [
        ('facet1', {'title': 'Facet 1'}),
    ]
    used_filters = OrderedDict((
        ('field2!', ['value1']),
    ))
    principals = ['group.admin']
    doc_types = ['Experiment']
    aggs = set_facets(facets, used_filters, principals, doc_types)

    assert {
        'facet1': {
            'aggs': {
                'facet1': {
                    'terms': {
                        'field': 'embedded.facet1.raw',
                        'min_doc_count': 0,
                        'size': 100,
                    },
                },
            },
            'filter': {
                'bool': {
                    'must': [
                        {'terms': {'principals_allowed.view': ['group.admin']}},
                        {'terms': {'*****@*****.**': ['Experiment']}},
                        {'not': {'terms': {'embedded.field2.raw': ['value1']}}},
                    ],
                },
            },
        }
    } == aggs
コード例 #3
0
def test_set_facets_type_exists():
    from collections import OrderedDict
    from encoded.search import set_facets
    facets = [
        ('field1', {'title': 'Facet 1', 'type': 'exists'}),
        ('field2', {'title': 'Facet 2', 'type': 'exists'}),
    ]
    used_filters = OrderedDict((
        ('field1', ['*']),
        ('field2!', ['*']),
    ))
    principals = ['group.admin']
    doc_types = ['Experiment']
    aggs = set_facets(facets, used_filters, principals, doc_types)

    assert {
        'field1': {
            'aggs': {
                'field1': {
                    'filters': {
                        'filters': {
                            'yes': {
                                'exists': {'field': 'embedded.field1.raw'}
                            },
                            'no': {
                                'missing': {'field': 'embedded.field1.raw'}
                            }
                        },
                    },
                },
            },
            'filter': {
                'bool': {
                    'must': [
                        {'terms': {'principals_allowed.view': ['group.admin']}},
                        {'terms': {'*****@*****.**': ['Experiment']}},
                        {'missing': {'field': 'embedded.field2.raw'}},
                    ],
                },
            },
        },
        'field2': {
            'aggs': {
                'field2': {
                    'filters': {
                        'filters': {
                            'yes': {
                                'exists': {'field': 'embedded.field2.raw'}
                            },
                            'no': {
                                'missing': {'field': 'embedded.field2.raw'}
                            }
                        },
                    },
                },
            },
            'filter': {
                'bool': {
                    'must': [
                        {'terms': {'principals_allowed.view': ['group.admin']}},
                        {'terms': {'*****@*****.**': ['Experiment']}},
                        {'exists': {'field': 'embedded.field1.raw'}},
                    ],
                },
            },
        },
    } == aggs
コード例 #4
0
def test_set_facets_type_exists():
    from collections import OrderedDict
    from encoded.search import set_facets
    facets = [
        ('field1', {'title': 'Facet 1', 'type': 'exists'}),
        ('field2', {'title': 'Facet 2', 'type': 'exists'}),
    ]
    used_filters = OrderedDict((
        ('field1', ['*']),
        ('field2!', ['*']),
    ))
    principals = ['group.admin']
    doc_types = ['Experiment']
    aggs = set_facets(facets, used_filters, principals, doc_types)

    assert {
        'field1': {
            'aggs': {
                'field1': {
                    'filters': {
                        'filters': {
                            'yes': {
                                'exists': {'field': 'embedded.field1.raw'}
                            },
                            'no': {
                                'missing': {'field': 'embedded.field1.raw'}
                            }
                        },
                    },
                },
            },
            'filter': {
                'bool': {
                    'must': [
                        {'terms': {'principals_allowed.view': ['group.admin']}},
                        {'terms': {'*****@*****.**': ['Experiment']}},
                        {'missing': {'field': 'embedded.field2.raw'}},
                    ],
                },
            },
        },
        'field2': {
            'aggs': {
                'field2': {
                    'filters': {
                        'filters': {
                            'yes': {
                                'exists': {'field': 'embedded.field2.raw'}
                            },
                            'no': {
                                'missing': {'field': 'embedded.field2.raw'}
                            }
                        },
                    },
                },
            },
            'filter': {
                'bool': {
                    'must': [
                        {'terms': {'principals_allowed.view': ['group.admin']}},
                        {'terms': {'*****@*****.**': ['Experiment']}},
                        {'exists': {'field': 'embedded.field1.raw'}},
                    ],
                },
            },
        },
    } == aggs
コード例 #5
0
ファイル: test_search.py プロジェクト: Soheila-Git/encoded
def test_set_facets():
    from collections import OrderedDict
    from encoded.search import set_facets
    facets = [
        ('type', {'title': 'Type'}),
        ('audit.foo', {'title': 'Audit'}),
        ('facet1', {'title': 'Facet 1'}),
    ]
    used_filters = OrderedDict((
        ('facet1', ['value1']),
        ('audit.foo', ['value2']),
    ))
    principals = ['group.admin']
    doc_types = ['Snowball']
    aggs = set_facets(facets, used_filters, principals, doc_types)

    expected = {
        'type': {
            'aggs': {
                'type': {
                    'terms': {
                        'field': 'embedded.@type',
                        'exclude': ['Item'],
                        'min_doc_count': 0,
                        'size': 200,
                    },
                },
            },
            'filter': {
                'bool': {
                    'must': [
                        {'terms': {'principals_allowed.view': ['group.admin']}},
                        {'terms': {'embedded.@type': ['Snowball']}},
                        {'terms': {'embedded.facet1': ['value1']}},
                        {'terms': {'audit.foo': ['value2']}},
                    ],
                    'must_not': []
                },
            },
        },
        'audit-foo': {
            'aggs': {
                'audit-foo': {
                    'terms': {
                        'field': 'audit.foo',
                        'min_doc_count': 0,
                        'size': 200,
                    },
                },
            },
            'filter': {
                'bool': {
                    'must': [
                        {'terms': {'principals_allowed.view': ['group.admin']}},
                        {'terms': {'embedded.@type': ['Snowball']}},
                        {'terms': {'embedded.facet1': ['value1']}},
                    ],
                    'must_not': []
                },
            },
        },
        'facet1': {
            'aggs': {
                'facet1': {
                    'terms': {
                        'field': 'embedded.facet1',
                        'min_doc_count': 0,
                        'size': 200,
                    },
                },
            },
            'filter': {
                'bool': {
                    'must': [
                        {'terms': {'principals_allowed.view': ['group.admin']}},
                        {'terms': {'embedded.@type': ['Snowball']}},
                        {'terms': {'audit.foo': ['value2']}},
                    ],
                    'must_not': []
                },
            },
        }
    }
    assert(expected == aggs)