Ejemplo n.º 1
0
	def testWrite(self):
		writer = UFOWriter(self.dstDir, formatVersion=2)
		writer.setKerningGroupConversionRenameMaps(self.downConversionMapping)
		writer.writeKerning(self.kerning)
		writer.writeGroups(self.groups)
		# test groups
		path = os.path.join(self.dstDir, "groups.plist")
		with open(path, "rb") as f:
			writtenGroups = plistlib.load(f)
		self.assertEqual(writtenGroups, self.expectedWrittenGroups)
		# test kerning
		path = os.path.join(self.dstDir, "kerning.plist")
		with open(path, "rb") as f:
			writtenKerning = plistlib.load(f)
		self.assertEqual(writtenKerning, self.expectedWrittenKerning)
		self.tearDownUFO()
Ejemplo n.º 2
0
def test_io(tmpdir, parametrized_pl):
    pl, use_builtin_types = parametrized_pl
    testpath = tmpdir / "test.plist"
    with testpath.open("wb") as fp:
        plistlib.dump(pl, fp, use_builtin_types=use_builtin_types)

    with testpath.open("rb") as fp:
        pl2 = plistlib.load(fp, use_builtin_types=use_builtin_types)

    assert pl == pl2

    with pytest.raises(AttributeError):
        plistlib.dump(pl, "filename")

    with pytest.raises(AttributeError):
        plistlib.load("filename")
Ejemplo n.º 3
0
def test_writePlist_to_file(tmpdir, pl_no_builtin_types):
    testpath = tmpdir / "test.plist"
    with testpath.open("wb") as fp:
        plistlib.writePlist(pl_no_builtin_types, fp)
    with testpath.open("rb") as fp:
        pl2 = plistlib.load(fp, use_builtin_types=False)
    assert pl2 == pl_no_builtin_types
Ejemplo n.º 4
0
def test_bytesio(parametrized_pl):
    pl, use_builtin_types = parametrized_pl
    b = BytesIO()
    plistlib.dump(pl, b, use_builtin_types=use_builtin_types)
    pl2 = plistlib.load(BytesIO(b.getvalue()),
                        use_builtin_types=use_builtin_types)
    assert pl == pl2
Ejemplo n.º 5
0
def test_keysort_bytesio(sort_keys):
    pl = collections.OrderedDict()
    pl["b"] = 1
    pl["a"] = 2
    pl["c"] = 3

    b = BytesIO()

    plistlib.dump(pl, b, sort_keys=sort_keys)
    pl2 = plistlib.load(BytesIO(b.getvalue()),
                        dict_type=collections.OrderedDict)

    assert dict(pl) == dict(pl2)
    if sort_keys:
        assert list(pl2.keys()) == ["a", "b", "c"]
    else:
        assert list(pl2.keys()) == ["b", "a", "c"]
Ejemplo n.º 6
0
 def readPlist(self):
     path = os.path.join(self.dstDir, "fontinfo.plist")
     with open(path, "rb") as f:
         plist = plistlib.load(f)
     return plist
Ejemplo n.º 7
0
	def compareFileStructures(self, path1, path2, expectedInfoData, testFeatures):
		# result
		metainfoPath1 = os.path.join(path1, "metainfo.plist")
		fontinfoPath1 = os.path.join(path1, "fontinfo.plist")
		kerningPath1 = os.path.join(path1, "kerning.plist")
		groupsPath1 = os.path.join(path1, "groups.plist")
		libPath1 = os.path.join(path1, "lib.plist")
		featuresPath1 = os.path.join(path1, "features.plist")
		glyphsPath1 = os.path.join(path1, "glyphs")
		glyphsPath1_contents = os.path.join(glyphsPath1, "contents.plist")
		glyphsPath1_A = os.path.join(glyphsPath1, "A_.glif")
		glyphsPath1_B = os.path.join(glyphsPath1, "B_.glif")
		# expected result
		metainfoPath2 = os.path.join(path2, "metainfo.plist")
		fontinfoPath2 = os.path.join(path2, "fontinfo.plist")
		kerningPath2 = os.path.join(path2, "kerning.plist")
		groupsPath2 = os.path.join(path2, "groups.plist")
		libPath2 = os.path.join(path2, "lib.plist")
		featuresPath2 = os.path.join(path2, "features.plist")
		glyphsPath2 = os.path.join(path2, "glyphs")
		glyphsPath2_contents = os.path.join(glyphsPath2, "contents.plist")
		glyphsPath2_A = os.path.join(glyphsPath2, "A_.glif")
		glyphsPath2_B = os.path.join(glyphsPath2, "B_.glif")
		# look for existence
		self.assertEqual(os.path.exists(metainfoPath1), True)
		self.assertEqual(os.path.exists(fontinfoPath1), True)
		self.assertEqual(os.path.exists(kerningPath1), True)
		self.assertEqual(os.path.exists(groupsPath1), True)
		self.assertEqual(os.path.exists(libPath1), True)
		self.assertEqual(os.path.exists(glyphsPath1), True)
		self.assertEqual(os.path.exists(glyphsPath1_contents), True)
		self.assertEqual(os.path.exists(glyphsPath1_A), True)
		self.assertEqual(os.path.exists(glyphsPath1_B), True)
		if testFeatures:
			self.assertEqual(os.path.exists(featuresPath1), True)
		# look for aggrement
		with open(metainfoPath1, "rb") as f:
			data1 = plistlib.load(f)
		with open(metainfoPath2, "rb") as f:
			data2 = plistlib.load(f)
		self.assertEqual(data1, data2)
		with open(fontinfoPath1, "rb") as f:
			data1 = plistlib.load(f)
		self.assertEqual(sorted(data1.items()), sorted(expectedInfoData.items()))
		with open(kerningPath1, "rb") as f:
			data1 = plistlib.load(f)
		with open(kerningPath2, "rb") as f:
			data2 = plistlib.load(f)
		self.assertEqual(data1, data2)
		with open(groupsPath1, "rb") as f:
			data1 = plistlib.load(f)
		with open(groupsPath2, "rb") as f:
			data2 = plistlib.load(f)
		self.assertEqual(data1, data2)
		with open(libPath1, "rb") as f:
			data1 = plistlib.load(f)
		with open(libPath2, "rb") as f:
			data2 = plistlib.load(f)
		if "UFO1" in libPath1:
			for key in removeFromFormatVersion1Lib:
				if key in data1:
					del data1[key]
		if "UFO1" in libPath2:
			for key in removeFromFormatVersion1Lib:
				if key in data2:
					del data2[key]
		self.assertEqual(data1, data2)
		with open(glyphsPath1_contents, "rb") as f:
			data1 = plistlib.load(f)
		with open(glyphsPath2_contents, "rb") as f:
			data2 = plistlib.load(f)
		self.assertEqual(data1, data2)
		with open(glyphsPath1_A, "rb") as f:
			data1 = plistlib.load(f)
		with open(glyphsPath2_A, "rb") as f:
			data2 = plistlib.load(f)
		self.assertEqual(data1, data2)
		with open(glyphsPath1_B, "rb") as f:
			data1 = plistlib.load(f)
		with open(glyphsPath2_B, "rb") as f:
			data2 = plistlib.load(f)
		self.assertEqual(data1, data2)