コード例 #1
0
 def assertAmends(self, test, changes, **kwargs):
     """
     Assert that the plugin "test" amends the mock record when called with
     params kwargs.
     """
     record = AmendableRecord(MOCK_RECORD)
     record.set_rule(RULE_MOCK)
     test.check_record(record, **kwargs)
     self.assertTrue(record.amended)
     self.assertEqual(len(record._amendments), len(changes))
     for field, val in changes.iteritems():
         if val is not None:
             self.assertEqual(((field, 0, 0), val),
                              list(record.iterfield(field))[0])
         else:
             self.assertEqual(len(list(record.iterfield(field))), 1)
コード例 #2
0
def getInspireRecordMetadata(inspireID):
    '''For a given INSPIRE ID, collect the desired metadata fields
       and return them.
    '''

    fieldArray = {'0247_2': 'stdIDsource', '0247_a': 'stdID',
                  '245__a': 'title', '8564_u': 'files'}
    fieldValues = {}
    fieldKeys = fieldArray.keys()
    for fKey in fieldKeys:
        fieldValues[fKey] = get_fieldvalues(inspireID, fKey)
        print "fieldValues=", fKey, ":", fieldValues[fKey]

    # ThS suggested approach for dealing with the problem of two repeating
    # fields that correspond (say, a type in one field, and a value in another)
    record = AmendableRecord(get_bibrecord(inspireID))
    for _, val in record.iterfield('035__a', subfield_filter=('9', 'arXiv')):
        fieldValues['arxivID'] = val

    pdfList = []
    for z in fieldValues['8564_u']:
        if 'pdf' in z:
            pdfList.append(z)
    fieldValues['8564_u'] = pdfList

    return fieldValues
コード例 #3
0
 def assertAmends(self, test, changes, **kwargs):
     """
     Assert that the plugin "test" amends the mock record when called with
     params kwargs.
     """
     record = AmendableRecord(MOCK_RECORD)
     record.set_rule(RULE_MOCK)
     test.check_record(record, **kwargs)
     self.assertTrue(record.amended)
     self.assertEqual(len(record.amendments), len(changes))
     for field, val in changes.iteritems():
         if val is not None:
             self.assertEqual(
                 [((field, 0, 0), val)],
                 list(record.iterfield(field))
             )
         else:
             self.assertEqual(len(list(record.iterfield(field))), 1)
コード例 #4
0
 def assertDeletions(self, test, deletions, **kwargs):
     """
     Assert that the plugin "test" deletes from the mock record
     the fields in the list 'deletions' and makes the record amended
     when called with params kwargs.
     """
     record = AmendableRecord(MOCK_RECORD)
     record.set_rule(RULE_MOCK)
     test.check_record(record)
     self.assertTrue(record.amended)
     self.assertEqual(len(record._amendments), len(deletions))
     for field in deletions:
         self.assertEqual(0, len(list(record.iterfield(field))))
     if kwargs.get('tagremoved'):
         self.assertFalse(record.get(kwargs.get('tagremoved')))