Example #1
0
 def test_apply_filter(self):
     """Test that apply filters function can be used to strip items out of the data"""
     data = [{
         'a': '11',
         'b': '21',
         'c': '31'
     }, {
         'a': '12',
         'b': '22',
         'c': '32'
     }]
     result = coll.apply_filters(
         [coll.drop_fields('a'),
          coll.drop_fields('b')], data)
     expected = [{'c': '31'}, {'c': '32'}]
     self.assertEqual(expected, result)
Example #2
0
def main():
    """The commands main method"""
    print("running version: {}".format(str(cmr_imp.BUILD)))
    print(style_input("Enter in a free text search:"))
    ask = input(">")
    params = {}
    if len(ask) > 0:
        params = {'keyword': ask}
    else:
        print("No input given, use a default search")
        params = {'fake-parameter': 'value for fake parameter'}

    #params = {'polygon': '10,10,30,10,30,20,10,20,10,10'}
    print('Searching for {}'.format(params))

    coll.set_logging_to('DEBUG')
    time_start = time.time()
    raw_results = coll.search(params, limit=5000, config={'env': 'uat'})
    time_stop = time.time()

    durration = time_stop - time_start

    if 'errors' in raw_results:
        output_format = style_error('Error while searching: {}')
        output_result = raw_results['errors']
    else:
        filters = [
            coll.collection_core_fields,
            coll.drop_fields('EntryTitle'),
            coll.drop_fields('Version'),
            #coll.drop_fields('ShortName'),
            coll.drop_fields('concept-id')
        ]
        output_format = style_output()
        output_result = coll.apply_filters(filters, raw_results)
        #output_result = raw_results

    for item in output_result:
        print(output_format.format(item))
    print("It took {} seconds to pull {} records.".format(
        durration, len(raw_results)))
Example #3
0
 def _test_live_search(self):
     """
     Make a live call to CMR, this is not normally included in the test suite.
     Turn it on for doing some local tests
     """
     params = {}
     config = {}
     #params["provider"] = "SEDAC"
     params['keyword'] = 'salt'
     results = coll.search(query=params,
         filters=[coll.collection_core_fields, coll.drop_fields('EntryTitle')],
         limit=None,
         config=config)
     for i in results:
         print (i)
Example #4
0
    def test_search(self, urlopen_mock):
        """
        def search(query=None, filters=None, limit=None, config=None):
        """
        # Setup
        recorded_file = tutil.resolve_full_path(
            '../data/cmr/search/one_cmr_result.json')
        urlopen_mock.return_value = valid_cmr_response(recorded_file)

        full_result = coll.search({'provider': 'SEDAC'}, limit=1)
        self.assertEqual(1, len(full_result))

        # Unfiltered Test
        unfiltered_result = coll.search({'provider': 'SEDAC'},
                                        filters=[coll.all_fields],
                                        limit=1)
        self.assertEqual(full_result, unfiltered_result)

        # Meta filter Test
        meta_results = coll.search({'provider': 'SEDAC'},
                                   filters=[coll.meta_fields],
                                   limit=1)
        expected = [{
            'revision-id': 31,
            'deleted': False,
            'format': 'application/dif10+xml',
            'provider-id': 'SEDAC',
            'user-id': 'mhansen',
            'has-formats': False,
            'has-spatial-subsetting': False,
            'native-id': '2000 Pilot Environmental Sustainability Index (ESI)',
            'has-transforms': False,
            'has-variables': False,
            'concept-id': 'C179001887-SEDAC',
            'revision-date': '2019-07-26T18:37:52.861Z',
            'granule-count': 0,
            'has-temporal-subsetting': False,
            'concept-type': 'collection'
        }]
        self.assertEqual(expected, meta_results)

        # UMM filter Test
        umm_results = coll.search({'provider': 'SEDAC'},
                                  filters=[coll.umm_fields],
                                  limit=1)
        expected = '2000 Pilot Environmental Sustainability Index (ESI)'
        self.assertEqual(expected, umm_results[0]['EntryTitle'])
        self.assertEqual(28, len(umm_results[0].keys()))

        # Collection ID Filter Test
        cid_results = coll.search({'provider': 'SEDAC'},
                                  filters=[coll.concept_id_fields],
                                  limit=1)
        expected = [{'concept-id': 'C179001887-SEDAC'}]
        self.assertEqual(expected, cid_results)

        # Drop Filter Test
        drop_results = coll.search(
            {'provider': 'SEDAC'},
            filters=[
                coll.meta_fields,
                coll.drop_fields('has-temporal-subsetting'),
                coll.drop_fields('revision-date'),
                coll.drop_fields('has-spatial-subsetting')
            ],
            limit=1)
        expected = [{'concept-id': 'C179001887-SEDAC'}]
        meta_count = len(meta_results[0].keys())  #from test above
        drop_count = len(drop_results[0].keys())
        self.assertEqual(3, meta_count - drop_count)

        #IDs Filter Test
        ids_results = coll.search({'provider': 'SEDAC'},
                                  filters=[coll.collection_core_fields],
                                  limit=1)
        expected = [{
            'concept-id':
            'C179001887-SEDAC',
            'ShortName':
            'CIESIN_SEDAC_ESI_2000',
            'Version':
            '2000.00',
            'EntryTitle':
            '2000 Pilot Environmental Sustainability Index (ESI)'
        }]
        self.assertEqual(expected, ids_results)

        # Granule IDs Filter Tests
        gids_results = coll.search(
            {'provider': 'SEDAC'},
            filters=[coll.collection_ids_for_granules_fields],
            limit=1)
        expected = [{
            'provider-id':
            'SEDAC',
            'concept-id':
            'C179001887-SEDAC',
            'ShortName':
            'CIESIN_SEDAC_ESI_2000',
            'Version':
            '2000.00',
            'EntryTitle':
            '2000 Pilot Environmental Sustainability Index (ESI)'
        }]
        self.assertEqual(expected, gids_results)