def test_us_23_positive(self): """ Validate that if a family contains an invalid id, regardless of where you are in the script, false is returned """ gedcom_data = parse_gedcom_file("./sampledata/basetestdata.ged") individuals = gedcom_data[1] # Assert that this file contains duplicate individuals self.assertTrue(unique_name_b_date(individuals))
def test_us_38(self): """ Validate that there are upcoming birthdays for 2/21/2017 in this file. """ gedcom_data = parse_gedcom_file("./sampledata/us25testdata.ged") individuals = gedcom_data[1] # Assert that this file contains upcoming birthdays for febraury. today = datetime.datetime.strptime("02 21 2017", '%m %d %Y') self.assertTrue(find_upcoming_birthdays(individuals, today=today))
def test_us_38_neg(self): """ Validate that there are NO upcoming birthdays for 12/21/2017 in this file. """ gedcom_data = parse_gedcom_file("./sampledata/us25testdata.ged") individuals = gedcom_data[1] # Assert that this file contains NO upcoming birthdays for december. today = datetime.datetime.strptime("12 21 2017", '%m %d %Y') self.assertFalse(find_upcoming_birthdays(individuals, today=today))
def test_husband_is_14(self): """ Validate that the husband is at least 14 """ gedcom_data = parse_gedcom_file("./sampledata/us10testdata.ged") families = gedcom_data[0] for fam_id in gedcom_data[0]: family = families[fam_id] self.assertFalse(family.husband_is_over_14(gedcom_data[1]))
def test_living_marrried(self): """ Lists all living married people """ gedcom_data = parse_gedcom_file("./sampledata/us30testdata.ged") famil = gedcom_data[0] individ = gedcom_data[1] for fam_id in gedcom_data[0]: family = famil[fam_id] self.assertTrue(family.validate_living_married(individ, famil))
def test_marriage_before_divorce(self): """ Validate if divorce date has happened before marriage date """ gedcom_data = parse_gedcom_file("./sampledata/us04testdata.ged") for family in gedcom_data[0]: if gedcom_data[0].get(family).married != "NA" or gedcom_data[ 0].get(family).divorced != "NA": self.assertTrue(gedcom_data[0].get( family).validate_marriage_divorce_date())
def test_living_single_over_30(self): """ Lists all living single people over 30 """ gedcom_data = parse_gedcom_file("./sampledata/us30testdata.ged") famil = gedcom_data[0] individ = gedcom_data[1] for individual_id in gedcom_data[1]: individual = individ[individual_id] self.assertTrue(individual.validate_living_single_over_30(individ, famil))
def test_marriage_descendants(self): """ Validate if a family member has married their own descendants """ gedcom_data = parse_gedcom_file("./sampledata/us17testdata.ged") for individual in gedcom_data[1]: spouse_ids = gedcom_data[1].get(individual).spouse for id in spouse_ids: self.assertTrue( gedcom_data[1].get(individual).validate_spouse(id))
def test_integration(self): """ This is a sanity check on the integration with some sample data. Verify that Cheryl is F and Jimmy is M. """ gedcom_data = parse_gedcom_file("./sampledata/us21testdata.ged") families = gedcom_data[0] individuals = gedcom_data[1] for fam_id in families: family = families[fam_id] self.assertTrue(family.validate_husb_role(individuals)) self.assertTrue(family.validate_wife_role(individuals))
def test_us_25_hs4(self): """ Validate that if a family contains an invalid id, regardless of where you are in the script, false is returned """ gedcom_data = parse_gedcom_file("./sampledata/us25testdata.ged") for family in gedcom_data[0]: children_ids = gedcom_data[0].get(family).children for id in children_ids: if id in gedcom_data[1]: gedcom_data[1].get(id) if id == "hs4": self.assertFalse(gedcom_data[0].get(family).validate_children(gedcom_data[1]))
def test_us_02(self): """ Validate Birthday does not occur before Marriage """ gedcom_data = parse_gedcom_file("./sampledata/basetestdata.ged") families = gedcom_data[0] individuals = gedcom_data[1] results = [] for fam_id in families: family = families[fam_id] result = family.birth_before_marriage(individuals) if not result: results.append(result) self.assertTrue(results == [])
def test_us_01_marriages(self): """ Validate Dates are not before current date. """ gedcom_data = parse_gedcom_file("./sampledata/basetestdata.ged") families = gedcom_data[0] dates = [] for fam_id in families: family = families[fam_id] result = family.verify_date_not_future(fam_id, family.married, "FAMILY MARRIAGE") if result: dates.append(result) self.assertTrue(dates == [])
def test_us_01_death_neg(self): """ Validate Dates are not before current date. """ gedcom_data = parse_gedcom_file("./sampledata/proj02test.ged") individuals = gedcom_data[1] dates = [] for indi_id in individuals: individual = individuals[indi_id] result = individual.verify_date_not_future(individual.id, individual.death, "INDIVIDUAL DEATH") if result: dates.append(result) self.assertFalse(dates == [])
def test_us_01_birthdays(self): """ Validate Dates are not before current date. """ gedcom_data = parse_gedcom_file("./sampledata/basetestdata.ged") individuals = gedcom_data[1] dates = [] for indi_id in individuals: individual = individuals[indi_id] result = individual.verify_date_not_future(individual.id, individual.birthday, "INDIVIDUAL BIRTHDAY") if result: dates.append(result) self.assertTrue(dates == [])
def test_us_01_divorces_neg(self): """ Validate Dates are not before current date. """ gedcom_data = parse_gedcom_file( "./sampledata/US01futuredatestests.ged") families = gedcom_data[0] dates = [] for fam_id in families: family = families[fam_id] result = family.verify_date_not_future(fam_id, family.divorced, "FAMILY DIVORCE") if result: dates.append(result) self.assertFalse(dates == [])
def test_us_29_not_dead(self): """ Validate individuals living are not identified as dead. (False Positive) """ gedcom_data = parse_gedcom_file("./sampledata/US29NegTst.ged") individuals = gedcom_data[1] outcome = [] result = False for indi_id in individuals: individual = individuals[indi_id] result = individual.is_dead() if result: outcome.append(result) self.assertFalse(result)
def test_us_39_neg(self): """ Validate that there are NO upcoming anniversaries for 12/21/2017 in this file. """ gedcom_data = parse_gedcom_file("./sampledata/us39testdata.ged") families = gedcom_data[0] individuals = gedcom_data[1] data = [] # Assert that this file contains NO upcoming anniversaries for december. today = datetime.datetime.strptime("12 21 2017", '%m %d %Y') for fam_id in families: family = families[fam_id] result = family.anniversary_upcoming(individuals, today=today) if result: data.append(result) self.assertTrue(data == [])
def test_parser(self): print("~~~~~~~~~~~~~~~~SPRINT 1 TEST BEGIN~~~~~~~~~~~~~~~~") sprint1_data = parse_gedcom_file("./sampledata/sprint1testdata.ged") self.assertTrue(sprint1_data != []) print_individuals_data(sprint1_data[1], False) print_family_data(sprint1_data[0], sprint1_data[1], False) validate_families(sprint1_data[0], sprint1_data[1]) validate_individuals(sprint1_data[1]) if len(sprint1_data) <= 3: for error in sprint1_data[2]: print(error + "\n") if len(sprint1_data) <= 4: for error in sprint1_data[2]: print(error + "\n") for error in sprint1_data[3]: print(error + "\n") print("~~~~~~~~~~~~~~~~SPRINT 1 TEST END~~~~~~~~~~~~~~~~")
def test_parser(self): proj2_test_data = parse_gedcom_file("./sampledata/proj02test.ged") self.assertTrue(proj2_test_data != []) print_individuals_data(proj2_test_data[1], False) print_family_data(proj2_test_data[0], proj2_test_data[1], True)
def test_larger_dataset_parser(self): other_test_data = parse_gedcom_file("./sampledata/basetestdata.ged") self.assertTrue(other_test_data != []) print_individuals_data(other_test_data[1], False) print_family_data(other_test_data[0], other_test_data[1], True)