def check_indi_roles(self, fam, family_tree, failures): logger = self.logger husb_id = fam.husb wife_id = fam.wife chil_id_list = fam.get_children() logger.debug( f'checking indi records for [fam: {fam.id}, husb: {husb_id}, wife: {wife_id}, chil: {chil_id_list}]' ) all_indi_ids = get_id_list(family_tree.get_indi_list()) if husb_id: if husb_id in all_indi_ids: husb = family_tree.get(husb_id) logger.debug( f'{fam.id} husband definition found in record: {husb.id} = {husb.name}' ) else: warn_msg = f'{fam.id} husband {husb_id} definition NOT found in record' logger.debug(warn_msg) fam.err = TreeError(TreeError.TYPE_ANOMALY, TreeError.ON_FAM, 'US26', fam.id, warn_msg) failures.append(fam) if wife_id: if wife_id in all_indi_ids: wife = family_tree.get(wife_id) logger.debug( f'{fam.id} wife definition found in record: {wife.id} = {wife.name}' ) else: warn_msg = f'{fam.id} wife {wife_id} definition NOT found in record' logger.debug(warn_msg) fam.err = TreeError(TreeError.TYPE_ANOMALY, TreeError.ON_FAM, 'US26', fam.id, warn_msg) failures.append(fam) if chil_id_list: for child_id in chil_id_list: if child_id in all_indi_ids: child = family_tree.get(child_id) logger.debug( f'{fam.id} child definition found in record: {child.id} = {child.name}' ) else: warn_msg = f'{fam.id} child {child_id} definition NOT found in record' logger.debug(warn_msg) fam.err = TreeError(TreeError.TYPE_ANOMALY, TreeError.ON_FAM, 'US26', fam.id, warn_msg) failures.append(fam)
def check_family_roles(self, indi, family_tree, failures): logger = self.logger logger.debug( f'checking family records for [person: {indi.id} [{indi.name}], famc: {indi.famc}, fams: {indi.fams}]' ) # use getparent and getspouse methods without passing the familytree object, so that it returns the id # strings even if they are invalid i.e. not found in the family tree map parent_fam_id = indi.get_parent_family() spouse_fam_id_list = indi.get_spouse_families() children = indi.get_children(family_tree) all_fams_ids = get_id_list(family_tree.get_fam_list()) if parent_fam_id: if parent_fam_id in all_fams_ids: parent_fam = family_tree.get(parent_fam_id) logger.debug( f'{indi.id} parent family definition found in record: {parent_fam.id} = {parent_fam.husb} : {parent_fam.wife}' ) else: warn_msg = f'{indi.name} [{indi.id}] parent family [{indi.famc}] definition NOT found in record' logger.debug(warn_msg) indi.err = TreeError(TreeError.TYPE_ANOMALY, TreeError.ON_INDI, 'US26', indi.id, warn_msg) failures.append(indi) else: logger.debug( f'{indi.id} parent family id not supplied in indi definition') if spouse_fam_id_list: for spouse_fam_id in spouse_fam_id_list: if spouse_fam_id in all_fams_ids: spouse_fam = family_tree.get(spouse_fam_id) logger.debug( f'{indi.id} spouse family definition found in record: {spouse_fam.id} = {spouse_fam.husb} : {spouse_fam.wife}' ) else: warn_msg = f'{indi.name} [{indi.id}] spouse family [{indi.fams}] definition NOT found in record' logger.debug(warn_msg) indi.err = TreeError(TreeError.TYPE_ANOMALY, TreeError.ON_INDI, 'US26', indi.id, warn_msg) failures.append(indi) else: logger.debug( f'{indi.id} spouse family id not supplied in indi definition')
def test_us22(self): self.assertEqual(['I2', 'I5', 'F1'], get_id_list(self.stories.us22(get_data_file_path('us22.ged'))))
def test_us26(self): self.assertEqual(['I2', 'I6', 'F1', 'F2', 'F3'], get_id_list(self.stories.us26(get_data_file_path('us26.ged'))))
def test_us19(self): self.assertEqual(['I12', 'I8'], get_id_list(self.stories.us19(get_data_file_path('us19.ged'))))
def test_us13(self): self.assertEqual(['I1', 'I10', 'I5', 'I7'], get_id_list(self.stories.us13(get_data_file_path('us13.ged'))))
def test_us08(self): """ I5, I6, I7, I8 have failing criteria in us08.ged """ self.assertEqual(['I5', 'I6', 'I7', 'I8'], get_id_list(self.stories.us08(get_data_file_path('us08.ged'))))
def test_us01(self): """ I1, I5, F1 have failing criteria in us01.ged """ self.assertEqual(['I1', 'I5', 'F1'], get_id_list(self.stories.us01(get_data_file_path('us01.ged'))))
def test_us21(self): """testing us21""" fp = get_data_file_path('US14.ged') self.assertEqual(get_id_list(UserStoriesRK().us21(fp)), ['F1']) self.assertNotEqual(get_id_list(UserStoriesRK().us21(fp)), ['F04', 'F01'])
def test_us20(self): """ I10, I4 have failing criteria in US20.ged """ error_list = self.stories.us20(get_data_file_path('US20.ged')) self.assertEqual(['I10', 'I4'], get_id_list(error_list))
def test_us18(self): """ I1, I2, I6, I8 have failing criteria in us18.ged """ error_list = self.stories.us18(get_data_file_path('us18.ged')) self.assertEqual(['I1', 'I2', 'I6', 'I8'], get_id_list(error_list))
def test_us17(self): """ I3 have failing criteria in us17.ged """ error_list = self.stories.us17(get_data_file_path('us17.ged')) self.assertEqual(['I3'], get_id_list(error_list))
def test_us10(self): """ I1, I2, I7 have failing criteria in us10.ged """ error_list = self.stories.us10(get_data_file_path('us10.ged')) self.assertEqual(['F1', 'F2', 'F4'], get_id_list(error_list))
def test_us09(self): """ US09I1 have failing criteria in us09.ged """ self.assertEqual( ['US09I1'], get_id_list(self.stories.us09(get_data_file_path('us09.ged'))))
def test_us29(self): """testing us29""" fp = get_data_file_path('us03&04.ged') self.assertEqual(get_id_list(UserStoriesRK().us29(fp)), ['I01', 'I08']) self.assertNotEqual(get_id_list(UserStoriesRK().us29(fp)), ['I01', 'F01'])
def test_us31(self): """ I1, I10, I6 have failing criteria in US31.ged """ error_list = self.stories.us31(get_data_file_path('US31.ged')) self.assertEqual(['I1', 'I10', 'I6'], get_id_list(error_list))
def test_us04(self): """testing us04""" self.assertEqual(get_id_list(UserStoriesRK().us04()), ['F04']) self.assertNotEqual(get_id_list(UserStoriesRK().us04()), ['F04', 'F01'])