Ejemplo n.º 1
0
    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")
Ejemplo n.º 2
0
    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"))
Ejemplo n.º 3
0
    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"))
Ejemplo n.º 4
0
    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"), [])
Ejemplo n.º 5
0
    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"))
Ejemplo n.º 6
0
    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"))