def test_searches_fields_filters_response_field_make_filter(dummy_parent): dummy_parent._meta['params_parser']._request.environ['QUERY_STRING'] = ( 'type=Experiment&assay_title=Histone+ChIP-seq&award.project=Roadmap' '&limit=all&frame=embedded&restricted!=*&searchTerm=ctcf') from snovault.elasticsearch.searches.fields import FiltersResponseField frf = FiltersResponseField() frf.parent = dummy_parent frf._make_filter('type', 'Experiment') assert frf.filters[0] == { 'field': 'type', 'remove': '/dummy?assay_title=Histone+ChIP-seq&award.project=Roadmap&limit=all&frame=embedded&restricted%21=%2A&searchTerm=ctcf', 'term': 'Experiment' }
def test_searches_fields_filters_response_field_get_filters_and_search_terms_from_query_string( dummy_parent): dummy_parent._meta['params_parser']._request.environ['QUERY_STRING'] = ( 'type=Experiment&assay_title=Histone+ChIP-seq&award.project=Roadmap' '&limit=all&frame=embedded&restricted!=*&searchTerm=ctcf') from snovault.elasticsearch.searches.fields import FiltersResponseField frf = FiltersResponseField() frf.parent = dummy_parent expected = [('assay_title', 'Histone ChIP-seq'), ('award.project', 'Roadmap'), ('restricted!', '*'), ('type', 'Experiment'), ('searchTerm', 'ctcf')] actual = frf._get_filters_and_search_terms_from_query_string() assert len(actual) == len(expected) assert all([e in actual for e in expected])
def audit(context, request): fr = FieldedResponse( _meta={ 'params_parser': ParamsParser(request) }, response_fields=[ TitleResponseField( title=AUDIT_TITLE ), TypeResponseField( at_type=[AUDIT_TITLE] ), IDResponseField(), SearchBaseResponseField(), ContextResponseField(), AuditMatrixWithFacetsResponseField( default_item_types=DEFAULT_ITEM_TYPES ), NotificationResponseField(), FiltersResponseField(), TypeOnlyClearFiltersResponseField(), DebugQueryResponseField() ] ) return fr.render()
def search(context, request): # Note the order of rendering matters for some fields, e.g. AllResponseField and # NotificationResponseField depend on results from BasicSearchWithFacetsResponseField. fr = FieldedResponse( _meta={ 'params_parser': ParamsParser(request) }, response_fields=[ TitleResponseField( title=SEARCH_TITLE ), TypeResponseField( at_type=[SEARCH_TITLE] ), IDResponseField(), ContextResponseField(), BasicSearchWithFacetsResponseField( default_item_types=DEFAULT_ITEM_TYPES ), AllResponseField(), NotificationResponseField(), FiltersResponseField(), ClearFiltersResponseField(), ColumnsResponseField(), SortResponseField(), DebugQueryResponseField() ] ) return fr.render()
def summary(context, request): fr = FieldedResponse( _meta={ 'params_parser': ParamsParser(request) }, response_fields=[ TitleResponseField( title=SUMMARY_TITLE ), TypeResponseField( at_type=[SUMMARY_TITLE] ), IDResponseField(), SearchBaseResponseField(), ContextResponseField(), BasicMatrixWithFacetsResponseField( default_item_types=DEFAULT_ITEM_TYPES, matrix_definition_name=SUMMARY_MATRIX ), NotificationResponseField(), FiltersResponseField(), TypeOnlyClearFiltersResponseField(), DebugQueryResponseField() ] ) return fr.render()
def mouse_development(context, request): fr = FieldedResponse( _meta={ 'params_parser': ParamsParser(request) }, response_fields=[ TitleResponseField( title='Mouse Development Matrix' ), TypeResponseField( at_type=['MouseDevelopmentMatrix'] ), IDResponseField(), SearchBaseResponseField(), ContextResponseField(), BasicMatrixWithFacetsResponseField( default_item_types=DEFAULT_ITEM_TYPES, matrix_definition_name='mouse_development' ), NotificationResponseField(), FiltersResponseField(), TypeOnlyClearFiltersResponseField(), DebugQueryResponseField() ] ) return fr.render()
def entex_matrix(context, request): fr = FieldedResponse( _meta={ 'params_parser': ParamsParser(request) }, response_fields=[ TitleResponseField( title='Epigenomes from four individuals (ENTEx)' ), TypeResponseField( at_type=['EntexMatrix'] ), IDResponseField(), SearchBaseResponseField(), ContextResponseField(), MissingMatrixWithFacetsResponseField( default_item_types=DEFAULT_ITEM_TYPES, matrix_definition_name='entex' ), NotificationResponseField(), FiltersResponseField(), TypeOnlyClearFiltersResponseField(), DebugQueryResponseField() ] ) return fr.render()
def report(context, request): fr = FieldedResponse( _meta={ 'params_parser': ParamsParser(request) }, response_fields=[ TitleResponseField( title=REPORT_TITLE ), TypeResponseField( at_type=[REPORT_TITLE] ), IDResponseField(), ContextResponseField(), BasicReportWithFacetsResponseField(), AllResponseField(), NotificationResponseField(), FiltersResponseField(), TypeOnlyClearFiltersResponseField(), ColumnsResponseField(), NonSortableResponseField(), SortResponseField(), DebugQueryResponseField() ] ) return fr.render()
def test_searches_fields_filters_response_field_make_filters(dummy_parent): dummy_parent._meta['params_parser']._request.environ['QUERY_STRING'] = ( 'type=Experiment&assay_title=Histone+ChIP-seq&award.project=Roadmap' '&limit=all&frame=embedded&restricted!=*&searchTerm=ctcf') from snovault.elasticsearch.searches.fields import FiltersResponseField frf = FiltersResponseField() frf.parent = dummy_parent frf._make_filters() expected = [{ 'remove': '/dummy?type=Experiment&award.project=Roadmap&limit=all&frame=embedded&restricted%21=%2A&searchTerm=ctcf', 'field': 'assay_title', 'term': 'Histone ChIP-seq' }, { 'remove': '/dummy?type=Experiment&assay_title=Histone+ChIP-seq&limit=all&frame=embedded&restricted%21=%2A&searchTerm=ctcf', 'field': 'award.project', 'term': 'Roadmap' }, { 'remove': '/dummy?type=Experiment&assay_title=Histone+ChIP-seq&award.project=Roadmap&limit=all&frame=embedded&searchTerm=ctcf', 'field': 'restricted!', 'term': '*' }, { 'remove': '/dummy?assay_title=Histone+ChIP-seq&award.project=Roadmap&limit=all&frame=embedded&restricted%21=%2A&searchTerm=ctcf', 'field': 'type', 'term': 'Experiment' }, { 'remove': '/dummy?type=Experiment&assay_title=Histone+ChIP-seq&award.project=Roadmap&limit=all&frame=embedded&restricted%21=%2A', 'field': 'searchTerm', 'term': 'ctcf' }] actual = frf.filters assert len(actual) == len(expected) assert all([e in actual for e in expected])
def collection_view_listing_es(context, request): if not hasattr(request, 'datastore') or request.datastore != ELASTIC_SEARCH: return collection_view_listing_db(context, request) fr = FieldedResponse(_meta={'params_parser': ParamsParser(request)}, response_fields=[ IDResponseField(), CollectionSearchWithFacetsResponseField(), AllResponseField(), NotificationResponseField(), FiltersResponseField(), CollectionClearFiltersResponseField(), ColumnsResponseField() ]) return fr.render()
def encore_rna_seq_matrix(context, request): fr = FieldedResponse( _meta={'params_parser': ParamsParser(request)}, response_fields=[ TitleResponseField(title='ENCORE RNA-seq Matrix'), TypeResponseField(at_type=['EncoreRnaSeqMatrix']), IDResponseField(), SearchBaseResponseField(), ContextResponseField(), MissingMatrixWithFacetsResponseField( default_item_types=DEFAULT_ITEM_TYPES, matrix_definition_name='encore_rna_seq_matrix'), NotificationResponseField(), FiltersResponseField(), TypeOnlyClearFiltersResponseField(), DebugQueryResponseField() ]) return fr.render()
def test_searches_fields_filters_response_field_get_path_qs_without_filter( dummy_parent): dummy_parent._meta['params_parser']._request.environ['QUERY_STRING'] = ( 'type=Experiment&assay_title=Histone+ChIP-seq&award.project=Roadmap' '&limit=all&frame=embedded&restricted!=*&searchTerm=ctcf') from snovault.elasticsearch.searches.fields import FiltersResponseField frf = FiltersResponseField() frf.parent = dummy_parent assert frf._get_path_qs_without_filter('type', 'Experiment') == ( '/dummy?assay_title=Histone+ChIP-seq&award.project=Roadmap&limit=all' '&frame=embedded&restricted%21=%2A&searchTerm=ctcf') assert frf._get_path_qs_without_filter('searchTerm', 'ctcf') == ( '/dummy?type=Experiment&assay_title=Histone+ChIP-seq&award.project=Roadmap&limit=all' '&frame=embedded&restricted%21=%2A') assert frf._get_path_qs_without_filter('searchTerm', 'ctcaf') == ( '/dummy?type=Experiment&assay_title=Histone+ChIP-seq&award.project=Roadmap&limit=all' '&frame=embedded&restricted%21=%2A&searchTerm=ctcf') assert frf._get_path_qs_without_filter('restricted!', '*') == ( '/dummy?type=Experiment&assay_title=Histone+ChIP-seq&award.project=Roadmap&limit=all' '&frame=embedded&searchTerm=ctcf')
def test_searches_fields_filters_response_field_init(dummy_parent): from snovault.elasticsearch.searches.fields import FiltersResponseField frf = FiltersResponseField() assert isinstance(frf, FiltersResponseField)