示例#1
0
 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)
示例#2
0
 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')
示例#3
0
 def test_us22(self):
     self.assertEqual(['I2', 'I5', 'F1'], get_id_list(self.stories.us22(get_data_file_path('us22.ged'))))
示例#4
0
 def test_us26(self):
     self.assertEqual(['I2', 'I6', 'F1', 'F2', 'F3'], get_id_list(self.stories.us26(get_data_file_path('us26.ged'))))
示例#5
0
 def test_us19(self):
     self.assertEqual(['I12', 'I8'], get_id_list(self.stories.us19(get_data_file_path('us19.ged'))))
示例#6
0
 def test_us13(self):
     self.assertEqual(['I1', 'I10', 'I5', 'I7'], get_id_list(self.stories.us13(get_data_file_path('us13.ged'))))
示例#7
0
 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'))))
示例#8
0
 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'))))
示例#9
0
 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'])
示例#10
0
 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))
示例#11
0
 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))
示例#12
0
 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))
示例#13
0
 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))
示例#14
0
 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'))))
示例#15
0
 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'])
示例#16
0
 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))
示例#17
0
 def test_us04(self):
     """testing us04"""
     self.assertEqual(get_id_list(UserStoriesRK().us04()), ['F04'])
     self.assertNotEqual(get_id_list(UserStoriesRK().us04()),
                         ['F04', 'F01'])