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') ]
def test_searches_parsers_params_parser_keys_filters_not_flag(dummy_request): from snovault.elasticsearch.searches.parsers import ParamsParser dummy_request.environ['QUERY_STRING'] = ( 'status=released&status!=submitted&type=File&file_format%21=bigWig') p = ParamsParser(dummy_request) assert p.get_not_keys_filters() == [('status', 'released'), ('status!', 'submitted'), ('type', 'File'), ('file_format!', 'bigWig')] assert p.get_not_keys_filters(not_keys=['status']) == [('type', 'File'), ('file_format!', 'bigWig')] assert p.get_not_keys_filters(not_keys=['status', 'file_format']) == [ ('type', 'File') ] assert p.get_not_keys_filters( not_keys=['status', 'file_format', 'type']) == [] assert p.get_keys_filters(keys=['status']) == [('status', 'released'), ('status!', 'submitted')] assert p.get_keys_filters(keys=['status', 'file_format']) == [ ('status', 'released'), ('status!', 'submitted'), ('file_format!', 'bigWig') ] assert p.get_must_not_match_filters(params=p.get_keys_filters( keys=['status', 'file_format'])) == [('status!', 'submitted'), ('file_format!', 'bigWig')] assert p.get_must_match_filters(params=p.get_keys_filters( keys=['status', 'file_format'])) == [('status', 'released')] assert p.get_query_string(params=p.get_must_match_filters( params=p.get_keys_filters( keys=['status', 'file_format']))) == 'status=released'
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()