def test_create_mods(self): # test creating MODS from scratch - ensure sub-xmlobject definitions are correct # and produce schema-valid MODS mymods = mods.MODS() mymods.create_title_info() # titleInfo subfields mymods.title_info.non_sort = 'A ' mymods.title_info.title = 'Record' mymods.title_info.subtitle = ': for testing' mymods.title_info.part_number = '1' mymods.title_info.part_name = 'first installment' mymods.title_info_list.append(mods.TitleInfo(non_sort='An ', title='Alternative Title', subtitle=': for testing', part_number = '1', part_name='first installment', label='First line')) mymods.resource_type = 'text' mymods.create_name() mymods.name.type = 'personal' mymods.name.authority = 'local' mymods.name.name_parts.extend([mods.NamePart(type='family', text='Schmoe'), mods.NamePart(type='given', text='Joe')]) mymods.name.roles.append(mods.Role(type='text', authority='local', text='Test Subject')) mymods.create_abstract() mymods.abstract.text = 'A testing record with made up content.' mymods.create_note() mymods.note.type = 'general' mymods.note.text = 'general note' mymods.create_origin_info() mymods.origin_info.created.append(mods.DateCreated(date='2001-10-02')) mymods.origin_info.issued.append(mods.DateIssued(date='2001-12-01')) mymods.create_record_info() mymods.record_info.record_id = 'id:1' mymods.identifiers.extend([mods.Identifier(type='uri', text='http://ur.l'), mods.Identifier(type='local', text='332')]) mymods.access_conditions.extend([mods.AccessCondition(type='restriction', text='unavailable'), mods.AccessCondition(type='use', text='Tuesdays only')]) mymods.related_items.extend([mods.RelatedItem(type='host', title='EU Archives'), mods.RelatedItem(type='isReferencedBy', title='Finding Aid')]) mymods.subjects.extend([mods.Subject(authority='keyword', topic='automated testing'), mods.Subject(authority='keyword', topic='test records')]) mymods.parts.append(mods.Part()) mymods.parts[0].details.extend([mods.PartDetail(type='volume', number='90'), mods.PartDetail(type='issue', number='2')]) mymods.parts[0].create_extent() mymods.parts[0].extent.unit = 'pages' mymods.parts[0].extent.start = '339' mymods.parts[0].extent.end = '361' xml = mymods.serialize(pretty=True) self.assert_(b'<mods:mods ' in xml) self.assert_(b'xmlns:mods="http://www.loc.gov/mods/v3"' in xml) self.assertTrue(mymods.is_valid(), "MODS created from scratch should be schema-valid")
def test_is_empty_date_values(self): self.origin_info.created.append(mods.DateCreated(date='300')) self.assertFalse(self.origin_info.is_empty()) self.origin_info.issued.append(mods.DateIssued(date='450')) self.assertFalse(self.origin_info.is_empty())
def test_is_empty_with_empty_dates(self): self.origin_info.created.append(mods.DateCreated()) self.assertTrue(self.origin_info.is_empty()) self.origin_info.issued.append(mods.DateIssued()) self.assertTrue(self.origin_info.is_empty())