Exemple #1
0
def test_searches_parsers_params_parser_chain_filters(dummy_request):
    from snovault.elasticsearch.searches.parsers import ParamsParser
    dummy_request.environ['QUERY_STRING'] = (
        'type!=Experiment&type=File&files.file_type=fastq&field!=status')
    p = ParamsParser(dummy_request)
    assert p.get_type_filters(params=p.get_must_not_match_filters()) == [
        ('type!', 'Experiment')
    ]
    assert p.get_must_not_match_filters(params=p.get_type_filters()) == [
        ('type!', 'Experiment')
    ]
Exemple #2
0
def test_searches_parsers_params_parser_get_type_filters(dummy_request):
    from snovault.elasticsearch.searches.parsers import ParamsParser
    dummy_request.environ['QUERY_STRING'] = (
        'type=Experiment&type=File&field=status&type!=Item')
    p = ParamsParser(dummy_request)
    assert p.get_type_filters() == [('type', 'Experiment'), ('type', 'File'),
                                    ('type!', 'Item')]
Exemple #3
0
def test_searches_parsers_params_parser_filter_and_query_string(dummy_request):
    from snovault.elasticsearch.searches.parsers import ParamsParser
    dummy_request.environ['QUERY_STRING'] = (
        'type=File&file_format%21=bigWig&file_type%21=bigBed+tss_peak'
        '&file_format_type=bed3%2B')
    p = ParamsParser(dummy_request)
    assert p.get_type_filters() == [('type', 'File')]
    assert p.get_query_string(params=p.get_type_filters()) == 'type=File'
    assert p.get_must_not_match_filters() == [('file_format!', 'bigWig'),
                                              ('file_type!', 'bigBed tss_peak')
                                              ]
    assert p.get_query_string(params=p.get_must_not_match_filters(
    )) == 'file_format%21=bigWig&file_type%21=bigBed+tss_peak'
    assert p.get_must_match_filters() == [('type', 'File'),
                                          ('file_format_type', 'bed3+')]
    assert p.get_query_string(params=p.get_must_match_filters()
                              ) == 'type=File&file_format_type=bed3%2B'
    assert dummy_request.environ['QUERY_STRING'] == p.get_query_string()
Exemple #4
0
def test_searches_parsers_params_parser_filtered_is_param(dummy_request):
    from snovault.elasticsearch.searches.parsers import ParamsParser
    dummy_request.environ['QUERY_STRING'] = (
        'type=File&status=released&file_type=bed+bed3%2B')
    p = ParamsParser(dummy_request)
    assert p.is_param('status', 'released')
    assert not p.is_param('status', 'released', params=p.get_type_filters())
    assert p.is_param('file_type',
                      'bed bed3+',
                      params=p.get_key_filters(
                          key='file_type', params=p.get_must_match_filters()))
Exemple #5
0
def test_searchers_parsers_params_parser_split_filters_by_must_and_exists(
        dummy_request):
    from snovault.elasticsearch.searches.defaults import NOT_FILTERS
    from snovault.elasticsearch.searches.parsers import ParamsParser
    dummy_request.environ['QUERY_STRING'] = (
        'type=*&status=released&status!=submitted&type=File&file_size=*'
        '&file_format%21=bigWig&restricted!=*&no_file_available!=*&limit=all')
    p = ParamsParser(dummy_request)
    must, must_not, exists, not_exists = p.split_filters_by_must_and_exists(
        params=p.get_not_keys_filters(not_keys=NOT_FILTERS) +
        p.get_type_filters())
    assert must == [('status', 'released'), ('type', 'File')]
    assert must_not == [('status!', 'submitted'), ('file_format!', 'bigWig')]
    assert exists == [('file_size', '*'), ('type', '*')]
    assert not_exists == [('restricted!', '*'), ('no_file_available!', '*')]