class TestFamily(unittest.TestCase): def setUp(self): self.King_root = Person("King", "M") self.family = Family(self.King_root) self.person_1 = Person("person1", "M") self.person_2 = Person("person2", "F") def test_search_functionality(self): with self.assertRaises(custom_exceptions.PersonNotFound): self.family.search_member(self.person_1) def test_child_addition(self): with self.assertRaises(custom_exceptions.ChildAdditionFailed): self.family.add_child_in_family(self.King_root, self.person_1) def test_get_relationship(self): with self.assertRaises(custom_exceptions.CommandNotFound): self.family.get_relationship(self.King_root, "unknown_relation")
family.add_child_in_family(Satvy, Vasa) family.add_spouse_in_family(Vyas, Krpi) family.add_child_in_family(Krpi, Kriya) family.add_child_in_family(Krpi, Krithi) #Queries with open(args.input_file, 'r') as file: lines = file.readlines() for line in lines: line = line.rstrip('\n') query = line.split(" ") if (query[0] == 'GET_RELATIONSHIP'): try: member = family.search_member(query[1]) result = family.get_relationship(member, query[2]) except (custom_exceptions.NullPointer): print(constants.NULLPOINTER_ERROR) except (custom_exceptions.CommandNotFound): print(constants.COMMAND_ERROR) except (custom_exceptions.PersonNotFound): print(constants.PERSON_ERROR) except (custom_exceptions.InadequateInformation): print(constants.INFORMATION_ERROR) else: print(" ".join(result)) elif (query[0] == "ADD_CHILD"): if (query[3] == "Female"): gender = constants.FEMALE else: gender = constants.MALE