def test_US_04(self): file_name = 'US_04_05_06.ged' file_path = os.path.join(current_directory, 'gedcom_test_files', file_name) individuals, families, tag_positions = parse_gedcom( file_path, 'outputs/test_output.txt') family = Family(1) family.divorced = check_and_convert_string_to_date("05 JAN 2005", 0) family.married = check_and_convert_string_to_date("10 JAN 2005", 0) self.assertEqual( marriage_before_divorce({}, {1: family}, {1: { 'DIV': {1}, 'MARR': {2} }}), [ 'ANOMALY: FAMILY: US04, line{1, 2}, Divorced before marriage in family 1.' ]) self.assertEqual( marriage_before_divorce(individuals, families, tag_positions), [ 'ANOMALY: FAMILY: US04, line{33, 35}, Divorced before marriage in family @F1@.' ])
def create_family_list(parsed_output): prev_is_married = False prev_is_divorced = False start_case = False for line in parsed_output: if line[0] == "FAM": if start_case == True: families.append(z) start_case = True line[1] = line[1].replace('@', '') z = Family(line[1]) elif line[0] == "MARR": prev_is_married = True elif line[0] == "DATE" and prev_is_married == True: z.married = line[1] prev_is_married = False elif line[0] == "DIV": prev_is_divorced = True elif line[0] == "DATE" and prev_is_divorced == True: z.divorced = line[1] prev_is_married = False elif line[0] == "HUSB": line[1] = line[1].replace('@', '') z.husbandId = line[1] z.husbandName = person_lookup(line[1]) elif line[0] == "WIFE": line[1] = line[1].replace('@', '') z.wifeId = line[1] z.wifeName = person_lookup(line[1]) elif line[0] == "CHIL": line[1] = line[1].replace('@', '') if len(z.children) > 0: z.children.append(line[1]) else: z.children = [line[1]] families.append(z)