Example #1
0
    def test_multiLine_Example(self):
        defn = """ecl:gry pid:860033327 eyr:2020 hcl:#fffffd
byr:1937 iyr:2017 cid:147 hgt:183cm

iyr:2013 ecl:amb cid:350 eyr:2023 pid:028048884
hcl:#cfa07d byr:1929

hcl:#ae17e1 iyr:2013
eyr:2024
ecl:brn pid:760753108 byr:1931
hgt:179cm

hcl:#cfa07d eyr:2025 pid:166559648
iyr:2011 ecl:brn hgt:59in"""
        expected = [{
            "ecl": "gry",
            "pid": "860033327",
            "eyr": "2020",
            "hcl": "#fffffd",
            "byr": "1937",
            "iyr": "2017",
            "cid": "147",
            "hgt": "183cm",
        }, {
            "iyr": "2013",
            "ecl": "amb",
            "cid": "350",
            "eyr": "2023",
            "pid": "028048884",
            "hcl": "#cfa07d",
            "byr": "1929",
        }, {
            "hcl": "#ae17e1",
            "iyr": "2013",
            "eyr": "2024",
            "ecl": "brn",
            "pid": "760753108",
            "byr": "1931",
            "hgt": "179cm",
        }, {
            "hcl": "#cfa07d",
            "eyr": "2025",
            "pid": "166559648",
            "iyr": "2011",
            "ecl": "brn",
            "hgt": "59in",
        }]

        result = build_dicts(defn)
        self.assertEqual(len(expected), len(result))
        for i in range(len(expected)):
            self.assertDictEqual(expected[i], result[i])
        self.assertListEqual(expected, build_dicts(defn))
Example #2
0
 def test_MissingItem(self):
     validDefn = """
         pid:087499704 hgt:74in ecl:grn iyr:2012 eyr:2030 byr:1980
         hcl:#623a2f
     """
     item = build_dicts(validDefn)[0]
     self.assertEqual(True, is_valid_item_strict(item))
     del item["pid"]
     self.assertEqual(False, is_valid_item_strict(item))
Example #3
0
 def test_allowBlank(self):
     defn = "a:b cc: eee:fff 1:2"
     expected = [{
         "a": "b",
         "cc": "",
         "eee": "fff",
         "1": "2",
     }]
     self.assertListEqual(expected, build_dicts(defn))
Example #4
0
 def test_oneLine(self):
     defn = "a:b cc:d eee:fff 1:2"
     expected = [{
         "a": "b",
         "cc": "d",
         "eee": "fff",
         "1": "2",
     }]
     self.assertListEqual(expected, build_dicts(defn))
Example #5
0
    def test_multiLine_2Dicts(self):
        defn = """
           a:b cc:d

           eee:fff gg:h
           1:2"""
        expected = [{
            "a": "b",
            "cc": "d"
        }, {
            "eee": "fff",
            "gg": "h",
            "1": "2",
        }]
        self.assertListEqual(expected, build_dicts(defn))
Example #6
0
    def test_Example1(self):
        validDefns = """
            pid:087499704 hgt:74in ecl:grn iyr:2012 eyr:2030 byr:1980
            hcl:#623a2f

            eyr:2029 ecl:blu cid:129 byr:1989
            iyr:2014 pid:896056539 hcl:#a97842 hgt:165cm

            hcl:#888785
            hgt:164cm byr:2001 iyr:2015 cid:88
            pid:545766238 ecl:hzl
            eyr:2022

            iyr:2010 hgt:158cm hcl:#b6652a ecl:blu byr:1944 eyr:2021 pid:093154719
        """
        items = build_dicts(validDefns)
        for i in items:
            self.assertTrue(is_valid_item_strict(i))
Example #7
0
    def test_Example2(self):
        invalidDefns = """
            eyr:1972 cid:100
            hcl:#18171d ecl:amb hgt:170 pid:186cm iyr:2018 byr:1926

            iyr:2019
            hcl:#602927 eyr:1967 hgt:170cm
            ecl:grn pid:012533040 byr:1946

            hcl:dab227 iyr:2012
            ecl:brn hgt:182cm pid:021572410 eyr:2020 byr:1992 cid:277

            hgt:59cm ecl:zzz
            eyr:2038 hcl:74454a iyr:2023
            pid:3556412378 byr:2007
        """
        items = build_dicts(invalidDefns)
        for i in items:
            self.assertEqual(False, is_valid_item_strict(i))
Example #8
0
 def test_WrongParts_Missing(self):
     defn = "a:b eee 1:2"
     self.assertRaises(ValueError, lambda: build_dicts(defn))
Example #9
0
 def test_WrongParts_Extra(self):
     defn = "a:b cc:d:xxx eee:fff 1:2"
     self.assertRaises(ValueError, lambda: build_dicts(defn))