def testIgnoreSpuriousRepeats(self): """sometimes the record contains a repeat character but then no subsequent values.""" lame_repeat = mockExport( {'title':'foo', 'creator_text_inverted':'Sprat, Max ' }) objekt, agents = wacart.parse_line(lame_repeat) self.assertEqual(['foo'], objekt['title']) self.assertEqual('Sprat', agents[0]['last_name']) self.assertEqual(1, len(agents)) lamer_repeat = mockExport( {'title':'foo', 'creator_text_inverted':'Sprat, Max ', 'inscription_location':'great!'}) objekt, agents = wacart.parse_line(lamer_repeat) self.assertEqual(['great!'], objekt['inscription_location']) self.assertEqual('Max', agents[0]['first_name']) self.assertEqual(1, len(agents)) lamest_repeat = mockExport( {'title':'foo', 'creator_text_inverted':'Sprat, Max ', 'inscription_location':'great!bad.'}) objekt, agents = wacart.parse_line(lamest_repeat) self.assertEqual(['great!','bad.'], objekt['inscription_location']) self.assertEqual('Max', agents[0]['first_name']) self.assertEqual(1, len(agents))
def testCleanSpuriousSpaces(self): """fields may have opening or trailing spaces, which we should ditch""" extra_spaces = mockExport( {'acc_no':' 2011.404', 'old_acc_no':'11.404 ', 'creator_text_inverted':' Doe, John ' }) objekt, agents = wacart.parse_line(extra_spaces) self.assertEqual('2011.404', objekt['acc_no']) self.assertEqual('11.404', objekt['old_acc_no']) self.assertEqual('Doe', agents[0]['last_name'])
def testSomeFields(self): """should be able to find the object's title and author's birthdate. Should not pass empty values.""" oneLineExport = mockExport( {'title':'foo', 'born':'1900', 'creator_text_inverted':'Bob, Jim', 'running_time': ''}) objekt, agents = wacart.parse_line(oneLineExport) self.assertEqual(['foo'], objekt['title']) self.assertEqual('1900', agents[0]['born']) self.assertEqual(False, objekt.has_key('running_time'))
def testArtistAuthorsAndEditor(self): lame_repeat = mockExport( {'birth_place':'BostonAntigua', 'creator_text_inverted':'Bob, Jim; Bob, Jane', 'author':'Bennett, John; Thomas Cassidy', 'author_birth_year':'1975', 'editor':'Mekas, Jonas'}) objekt, agents = wacart.parse_line(lame_repeat) self.assertEqual('Bob', agents[0]['last_name']) self.assertEqual('Bob', agents[1]['last_name']) self.assertEqual('artist', agents[0]['agent_type']) self.assertEqual('Bennett', agents[2]['last_name']) self.assertEqual('author', agents[2]['agent_type']) self.assertEqual('1975', agents[2]['born']) self.assertEqual('Cassidy', agents[3]['last_name']) self.assertEqual('Mekas', agents[4]['last_name']) self.assertEqual('editor', agents[4]['agent_type'])
def testRepeats(self): """Some works have multiple titles, measurements, etc. And there can be multiple agents.""" title_repeat = mockExport( {'title':'foobar', 'creator_text_inverted':'Doe, John; Roe, Jane', 'born':'1900/1998'}) objekt, agents = wacart.parse_line(title_repeat) self.assertEqual('foo', objekt['title'][0]) self.assertEqual('bar', objekt['title'][1]) self.assertEqual('Doe', agents[0]['last_name']) self.assertEqual('John', agents[0]['first_name']) self.assertEqual('artist', agents[0]['agent_type']) self.assertEqual('Roe', agents[1]['last_name']) self.assertEqual('Jane', agents[1]['first_name']) self.assertEqual('artist', agents[1]['agent_type']) self.assertEqual('Roe', agents[1]['last_name']) self.assertEqual('1900', agents[0]['born'])