|
168 | 168 | </mods:titleInfo>
|
169 | 169 | </mods:mods>
|
170 | 170 | '''
|
| 171 | +MODS_TEMPLATE = u''' |
| 172 | + <mods:mods ID="id101" |
| 173 | + xmlns:mods="http://www.loc.gov/mods/v3" |
| 174 | + xmlns:xlink="http://www.w3.org/1999/xlink" |
| 175 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| 176 | + xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-4.xsd"> |
| 177 | + {inserted_mods} |
| 178 | + </mods:mods> |
| 179 | +''' |
171 | 180 |
|
172 | 181 |
|
173 | 182 | class ModsReadWrite(unittest.TestCase):
|
174 | 183 |
|
| 184 | + def mods_from_partial(self, mods_partial): |
| 185 | + sample_mods = MODS_TEMPLATE.format(inserted_mods=mods_partial) |
| 186 | + return load_xmlobject_from_string(sample_mods, mods.Mods) |
| 187 | + |
175 | 188 | def setUp(self):
|
176 | 189 | #basic mods
|
177 | 190 | self.mods = mods.make_mods()
|
@@ -304,6 +317,25 @@ def test_geographic_subjects(self):
|
304 | 317 | self.assertEqual(subject.hierarchical_geographic.city, 'New Orleans')
|
305 | 318 | self.assertEqual(subject.hierarchical_geographic.city_section, 'Lower Ninth Ward')
|
306 | 319 |
|
| 320 | + def test_parts(self): |
| 321 | + sample_mods = u''' |
| 322 | + <mods:part> |
| 323 | + <mods:detail type="issue"> |
| 324 | + <mods:number>11</mods:number> |
| 325 | + <mods:caption>no.</mods:caption> |
| 326 | + </mods:detail> |
| 327 | + <mods:extent unit="pages"> |
| 328 | + <mods:start>735</mods:start> |
| 329 | + <mods:end>743</mods:end> |
| 330 | + <mods:total>8</mods:total> |
| 331 | + </mods:extent> |
| 332 | + </mods:part> |
| 333 | + ''' |
| 334 | + loaded = self.mods_from_partial(sample_mods) |
| 335 | + part = loaded.parts[0] |
| 336 | + self.assertEqual(part.details[0].number, '11') |
| 337 | + self.assertEqual(part.details[0].caption, 'no.') |
| 338 | + |
307 | 339 | def test_validate_mods_35(self):
|
308 | 340 | loaded = load_xmlobject_from_string(MODS_35_XML, mods.Mods)
|
309 | 341 | self.assertTrue(loaded.is_valid())
|
|
0 commit comments