def test_set(self):
     """oairepository - testing selective harvesting with 'set' parameter"""
     self.assertEqual(intbitset([10, 17]), oai_repository_server.oai_get_recid_list(set_spec="cern:experiment"))
     self.assert_("Multifractal analysis of minimum bias events" in \
                  ''.join([oai_repository_server.print_record(recID) for recID in \
                           oai_repository_server.oai_get_recid_list(set_spec="cern:experiment")]))
     self.assert_("Multifractal analysis of minimum bias events" not in \
                  ''.join([oai_repository_server.print_record(recID) for recID in \
                           oai_repository_server.oai_get_recid_list(set_spec="cern:theory")]))
     self.failIf(oai_repository_server.oai_get_recid_list(set_spec="nonExistingSet"))
    def test_from_and_until(self):
        """oairepository - testing selective harvesting with 'from' and 'until' parameters"""

        req = StringIO()
        # List available records, get datestamps and play with them
        oai_repository_server.oai_list_records_or_identifiers(req, {'verb': 'ListIdentifiers', 'metadataPrefix': 'marcxml'})
        identifiers = req.getvalue()
        datestamps = re.findall('<identifier>(?P<id>.*?)</identifier>\s*<datestamp>(?P<date>.*?)</datestamp>', identifiers, re.M)

        sample_datestamp = datestamps[0][1] # Take one datestamp
        sample_oai_id = datestamps[0][0] # Take corresponding oai id
        sample_id = search_engine.perform_request_search(p=sample_oai_id,
                                                         f=CFG_OAI_ID_FIELD)[0] # Find corresponding system number id

        # There must be some datestamps
        self.assertNotEqual([], datestamps)

        # We must be able to retrieve an id with the date we have just found
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(fromdate=sample_datestamp), "%s not in %s (fromdate=%s)" % (sample_id, oai_repository_server.oai_get_recid_list(fromdate=sample_datestamp), sample_datestamp))
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(untildate=sample_datestamp), "%s not in %s" % (sample_id, oai_repository_server.oai_get_recid_list(untildate=sample_datestamp)))
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(untildate=sample_datestamp, \
                                                                 fromdate=sample_datestamp))

        # Same, with short format date. Eg 2007-12-13
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(fromdate=sample_datestamp.split('T')[0]))
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(untildate=sample_datestamp.split('T')[0]))
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(fromdate=sample_datestamp.split('T')[0], \
                                                                 untildate=sample_datestamp.split('T')[0]))

        # At later date (year after) we should not find our id again
        sample_datestamp_year = int(sample_datestamp[0:4])
        sample_datestamp_rest = sample_datestamp[4:]
        later_datestamp = str(sample_datestamp_year + 1) + sample_datestamp_rest
        self.assert_(sample_id not in oai_repository_server.oai_get_recid_list(fromdate=later_datestamp))

        # At earlier date (year before) we should not find our id again
        earlier_datestamp = str(sample_datestamp_year - 1) + sample_datestamp_rest
        self.assert_(sample_id not in oai_repository_server.oai_get_recid_list(untildate=earlier_datestamp))

        # From earliest date to latest date must include all oai records
        dates = [(time.mktime(time.strptime(date[1], "%Y-%m-%dT%H:%M:%SZ")), date[1]) for date in datestamps]
        dates = dict(dates)
        sorted_times = dates.keys()
        sorted_times.sort()
        earliest_datestamp = dates[sorted_times[0]]
        latest_datestamp = dates[sorted_times[-1]]
        self.assertEqual(oai_repository_server.oai_get_recid_list(), \
                         oai_repository_server.oai_get_recid_list(fromdate=earliest_datestamp, \
                                                            untildate=latest_datestamp))
Exemple #3
0
 def test_set(self):
     """oairepository - testing selective harvesting with 'set' parameter"""
     self.assertEqual(
         intbitset([10, 17]),
         oai_repository_server.oai_get_recid_list(
             set_spec="cern:experiment"))
     self.assert_("Multifractal analysis of minimum bias events" in \
                  ''.join([oai_repository_server.print_record(recID) for recID in \
                           oai_repository_server.oai_get_recid_list(set_spec="cern:experiment")]))
     self.assert_("Multifractal analysis of minimum bias events" not in \
                  ''.join([oai_repository_server.print_record(recID) for recID in \
                           oai_repository_server.oai_get_recid_list(set_spec="cern:theory")]))
     self.failIf(
         oai_repository_server.oai_get_recid_list(
             set_spec="nonExistingSet"))
Exemple #4
0
 def setUp(self):
     """Setting up some variables"""
     # Determine how many records are served
     self.number_of_records = len(
         oai_repository_server.oai_get_recid_list("", "", ""))
     if CFG_OAI_LOAD < self.number_of_records:
         self.number_of_records = CFG_OAI_LOAD
Exemple #5
0
    def test_from_and_until(self):
        """oairepository - testing selective harvesting with 'from' and 'until' parameters"""

        req = StringIO()
        # List available records, get datestamps and play with them
        oai_repository_server.oai_list_records_or_identifiers(
            req, {
                'verb': 'ListIdentifiers',
                'metadataPrefix': 'marcxml'
            })
        identifiers = req.getvalue()
        datestamps = re.findall(
            '<identifier>(?P<id>.*?)</identifier>\s*<datestamp>(?P<date>.*?)</datestamp>',
            identifiers, re.M)

        sample_datestamp = datestamps[0][1]  # Take one datestamp
        sample_oai_id = datestamps[0][0]  # Take corresponding oai id
        sample_id = search_engine.perform_request_search(
            p=sample_oai_id,
            f=CFG_OAI_ID_FIELD)[0]  # Find corresponding system number id

        # There must be some datestamps
        self.assertNotEqual([], datestamps)

        # We must be able to retrieve an id with the date we have just found
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(
            fromdate=sample_datestamp))
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(
            untildate=sample_datestamp))
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(untildate=sample_datestamp, \
                                                                 fromdate=sample_datestamp))

        # Same, with short format date. Eg 2007-12-13
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(
            fromdate=sample_datestamp.split('T')[0]))
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(
            untildate=sample_datestamp.split('T')[0]))
        self.assert_(sample_id in oai_repository_server.oai_get_recid_list(fromdate=sample_datestamp.split('T')[0], \
                                                                 untildate=sample_datestamp.split('T')[0]))

        # At later date (year after) we should not find our id again
        sample_datestamp_year = int(sample_datestamp[0:4])
        sample_datestamp_rest = sample_datestamp[4:]
        later_datestamp = str(sample_datestamp_year +
                              1) + sample_datestamp_rest
        self.assert_(sample_id not in oai_repository_server.oai_get_recid_list(
            fromdate=later_datestamp))

        # At earlier date (year before) we should not find our id again
        earlier_datestamp = str(sample_datestamp_year -
                                1) + sample_datestamp_rest
        self.assert_(sample_id not in oai_repository_server.oai_get_recid_list(
            untildate=earlier_datestamp))

        # From earliest date to latest date must include all oai records
        dates = [(time.mktime(time.strptime(date[1],
                                            "%Y-%m-%dT%H:%M:%SZ")), date[1])
                 for date in datestamps]
        dates = dict(dates)
        sorted_times = dates.keys()
        sorted_times.sort()
        earliest_datestamp = dates[sorted_times[0]]
        latest_datestamp = dates[sorted_times[-1]]
        self.assertEqual(oai_repository_server.oai_get_recid_list(), \
                         oai_repository_server.oai_get_recid_list(fromdate=earliest_datestamp, \
                                                            untildate=latest_datestamp))
 def setUp(self):
     """Setting up some variables"""
     # Determine how many records are served
     self.number_of_records = len(oai_repository_server.oai_get_recid_list("", "", ""))
     if CFG_OAI_LOAD < self.number_of_records:
         self.number_of_records = CFG_OAI_LOAD