def test_to_json(self): repo = self.repo # get an existing biography bios = repo.get_biographies() bios = list(bios)[1:4] merged = MergedBiography(bios) merged.to_dict()
def test_min_max_dates(self): bio1 = self._create_biography(naam='Lucky', birth_date='1900', death_date='1970') m_bio = MergedBiography([bio1]) # we gave wanted = ( datetime(1900, 1, 1), datetime(1900, 12, 31), datetime(1970, 1, 1), datetime(1970, 12, 31), ) self.assertEqual(m_bio._get_min_max_dates(), wanted) bio = self._create_biography(naam='Pozzo') bio._add_event(type='baptism', when='1910-01-02') m_bio = MergedBiography([bio]) wanted = ( datetime(1900, 1, 2), # at most 10 years before baptism datetime(1910, 1, 2), # birth_date_max on the day of baptism datetime(1920, 1, 2), # death_date at least 20 years after date_min datetime(2010, 1, 2), # lived not more than 100 years ) self.assertEqual(m_bio._get_min_max_dates(), wanted) # test with only a date of death bio = self._create_biography(naam='Vladimir') bio._add_event(type='death', when='1980-03') m_bio = MergedBiography([bio]) wanted = ( datetime(1880, 3, 1), # min birth 100 years before min death datetime(1960, 3, 31), # max birth 20 years before max death datetime(1980, 3, 1), datetime(1980, 3, 31), ) self.assertEqual(m_bio._get_min_max_dates(), wanted) # test with only a range of date of death bio = self._create_biography(naam='Vladimir') bio._add_event(type='death', notBefore='1980-03', notAfter='1990') m_bio = MergedBiography([bio]) wanted = ( datetime(1880, 3, 1), # min birth 100 years before min death datetime(1970, 12, 31), # max birth 20 years before max death datetime(1980, 3, 1), datetime(1990, 12, 31), ) self.assertEqual(m_bio._get_min_max_dates(), wanted)
def test_biography(self): repo = self.repo # get an existing biography bios = repo.get_biographies() bios = list(bios)[1:4] merged = MergedBiography(bios) bios = merged.get_biographies() ls = [] for bio in bios: ls += bio.get_names() assert ls self.assertEqual(len(merged.get_names()), len(ls)) self.assertEqual(set([n.to_string() for n in merged.get_names()]), set([n.to_string() for n in ls])) # check if the default value works self.assertEqual(len(merged.get_illustrations(default=['123'])), 1) for bio in bios: bio.set_value('geboortedatum', '') self.assertEqual(bio.get_value('geboortedatum'), None) self.assertEqual(merged.get_value('geboortedatum'), None) # if dates are consistent with each other, they "add up" bios[-1].set_value('geboortedatum', '2000') self.assertEqual(merged.get_value('geboortedatum'), '2000') bios[-2].set_value('geboortedatum', '2000-02') self.assertEqual(merged.get_value('geboortedatum'), '2000-02') bios[-3].set_value('geboortedatum', '2000-02-01') self.assertEqual(merged.get_value('geboortedatum'), '2000-02-01') self.assertEqual(merged.geboortedatum(), '2000-02-01') bios[-3].add_or_update_event(type='birth', when='', date_text='ongeveer') # , notBefore=notBefore, notAfter=notAfter, place=place) self.assertEqual(merged.geboortedatum(), 'ongeveer', etree.tostring(merged.get_event('birth'))) # @UndefinedVariable # test if all relevaent information ends up in the "merged biodes" file bios[-3].set_value('geboortedatum', '2000-02-01') doc = merged.to_xml() self.assertEqual(doc.get_value('geboortedatum'), '2000-02-01', doc.to_string()) self.assertEqual(doc.get_value('birth_date'), '2000-02-01')