def test_002_record_sub(self): """Test Record class with sub-records.""" rec = model.Record() rec.level = 0 rec.xref_id = "@x@" rec.tag = "REC" rec.value = "value" rec.sub_records = [] rec.offset = 1000 rec.dialect = model.DIALECT_DEFAULT for subtag in ['SUBA', 'SUBB', 'SUBC']: for i in range(3): sub = model.Record() sub.level = 1 sub.tag = subtag sub.value = i sub.sub_records = [] sub.offset = 1100 + 100 * i sub.dialect = model.DIALECT_DEFAULT subsub = model.Record() subsub.level = 2 subsub.tag = "SUB" subsub.value = 'VALUE' subsub.sub_records = [] subsub.dialect = model.DIALECT_DEFAULT subsub.freeze() sub.sub_records.append(subsub) sub.freeze() rec.sub_records.append(sub) # direct sub-tags rec.freeze() for subtag in ['SUBA', 'SUBB', 'SUBC']: self.assertEqual(rec.sub_tag(subtag).tag, subtag) self.assertEqual(len(rec.sub_tags(subtag)), 3) # non-existing sub-tags self.assertTrue(rec.sub_tag("SUB") is None) self.assertEqual(rec.sub_tags("SUB"), []) self.assertTrue(rec.sub_tag_value("SUB") is None) # hierarchical sub-tags self.assertTrue(rec.sub_tag("SUBA/SUB") is not None) self.assertEqual(rec.sub_tag("SUBB/SUB").tag, "SUB") self.assertEqual(rec.sub_tag_value("SUBB/SUB"), "VALUE")
def test_003_parse_name_myher(self): """Test parse_name_myher() """ rec = model.NameRec() rec.level = 1 rec.tag = "NAME" rec.dialect = model.DIALECT_MYHERITAGE rec.value = "First /Last Name/ Second" name_tup = parse_name_myher(rec) self.assertIsInstance(name_tup, tuple) self.assertEqual(name_tup, ("First", "Last Name", "Second")) rec.value = "First /Last(-er)/ Second" name_tup = parse_name_myher(rec) self.assertIsInstance(name_tup, tuple) self.assertEqual(name_tup, ("First", "Last(-er)", "Second")) rec.value = "First /Last (-er)/ Second" name_tup = parse_name_altree(rec) self.assertIsInstance(name_tup, tuple) self.assertEqual(name_tup, ("First", "Last (-er)", "Second")) married = model.Record() married.level = 2 married.tag = "_MARNM" married.value = "Married" rec.value = "First /Maiden/" rec.sub_records = [married] name_tup = parse_name_myher(rec) self.assertIsInstance(name_tup, tuple) self.assertEqual(name_tup, ("First", "Married", "", "Maiden"))
def test_002_parse_name_altree(self): """Test parse_name_altree() """ rec = model.NameRec() rec.level = 1 rec.tag = "NAME" rec.dialect = model.DIALECT_ALTREE rec.value = "First /Last Name/ Second" name_tup = parse_name_altree(rec) self.assertIsInstance(name_tup, tuple) self.assertEqual(name_tup, ("First", "Last Name", "Second")) rec.value = "First /Last(-er)/ Second" name_tup = parse_name_altree(rec) self.assertIsInstance(name_tup, tuple) self.assertEqual(name_tup, ("First", "Last(-er)", "Second")) rec.value = "First /Last (-er)/ Second" name_tup = parse_name_altree(rec) self.assertIsInstance(name_tup, tuple) self.assertEqual(name_tup, ("First", "Last (-er)", "Second")) maiden = model.Record() maiden.level = 2 maiden.tag = "SURN" maiden.value = "Maiden" rec.value = "First /Last (Maiden)/" rec.sub_records = [maiden] name_tup = parse_name_altree(rec) self.assertIsInstance(name_tup, tuple) self.assertEqual(name_tup, ("First", "Last", "", "Maiden"))
def test_001_record(self): """Test Record class.""" rec = model.Record() self.assertEqual( vars(rec), { 'dialect': None, 'xref_id': None, 'level': None, 'value': None, 'tag': None, 'sub_records': None, 'offset': None }) rec.level = 0 rec.xref_id = "@x@" rec.tag = "REC" rec.value = "value" rec.sub_records = [] rec.offset = 1000 rec.dialect = model.DIALECT_DEFAULT rec.freeze() self.assertTrue(rec.sub_tag("SUB") is None) self.assertEqual(rec.sub_tags("SUB"), [])
def test_012_namerec_myher(self): """Test NameRec class with MYHERITAGE dialect.""" rec = model.NameRec() rec.level = 1 rec.tag = "NAME" rec.dialect = model.DIALECT_MYHERITAGE rec.sub_records = [] rec.value = "" rec.freeze() self.assertIsInstance(rec.value, tuple) self.assertEqual(rec.value, ("", "", "")) rec.value = None rec.freeze() self.assertIsInstance(rec.value, tuple) self.assertEqual(rec.value, ("", "", "")) rec.value = "First /Last Name/ Second " rec.freeze() self.assertIsInstance(rec.value, tuple) self.assertEqual(rec.value, ("First", "Last Name", "Second")) married = model.Record() married.level = 2 married.tag = "_MARNM" married.value = "Last" married.sub_records = [] rec.value = "First /Maiden/" rec.sub_records = [married] rec.freeze() self.assertIsInstance(rec.value, tuple) self.assertEqual(rec.value, ("First", "Last", "", "Maiden"))
def test_011_namerec_altree(self): """Test NameRec class with ALTREE dialect.""" rec = model.NameRec() rec.level = 1 rec.tag = "NAME" rec.dialect = model.DIALECT_ALTREE rec.value = "" rec.freeze() self.assertIsInstance(rec.value, tuple) self.assertEqual(rec.value, ("", "", "")) rec.value = None rec.freeze() self.assertIsInstance(rec.value, tuple) self.assertEqual(rec.value, ("", "", "")) rec.value = "First /Last Name/ Second " rec.freeze() self.assertIsInstance(rec.value, tuple) self.assertEqual(rec.value, ("First", "Last Name", "Second")) maiden = model.Record() maiden.level = 2 maiden.tag = "SURN" maiden.value = "Maiden" rec.value = "First /Last (Maiden)/" rec.sub_records = [maiden] rec.freeze() self.assertIsInstance(rec.value, tuple) self.assertEqual(rec.value, ("First", "Last", "", "Maiden"))