def test_get_section(): t = TTNameTable(_testfile) for record in t.getSection(1,0,0): assert record.platformID == 1 assert record.platEncID == 0 assert record.langID == 0
def test_get_names_by_sect(): t = TTNameTable(_testfile) for sectinfo, sect in t.getNamesBySection().iteritems(): assert sectinfo.platformID == sect[random.randrange(0, len(sect))].platformID assert sectinfo.platEncID == sect[random.randrange(0, len(sect))].platEncID assert sectinfo.langID == sect[random.randrange(0, len(sect))].langID
def test_cli_helpers(): tt = TTNameTable(_testfile) rec = tt.getName(1, 1, 0, 0) assert info.trip(rec) == 'Macintosh (#1)/Roman (#0)/English (#0)' assert info.quad( rec) == 'Macintosh (#1)/Roman (#0)/English (#0) font family name (#1)'
def test_fromfile(): tt = TTNameTable(_testfile) rec = tt.getName(1,1,0,0) assert info.name(rec).startswith('font family name') assert info.platform(rec).startswith('Macintosh') assert info.encoding(rec).startswith('Roman') assert info.lang(rec).startswith('English')
def test_matches_fontconfig(): t = TTNameTable(_testfile) fc = get_fontconfig_data(_testfile) assert t.getName(1,1,0,0).string == fc['family'] assert t.getName(2,1,0,0).string == fc['style'] assert t.getName(4,1,0,0).string == fc['fullname'] assert t.getName(6,1,0,0).string == fc['postscriptname']
def test_fromfile(): tt = TTNameTable(_testfile) rec = tt.getName(1, 1, 0, 0) assert info.name(rec).startswith('font family name') assert info.platform(rec).startswith('Macintosh') assert info.encoding(rec).startswith('Roman') assert info.lang(rec).startswith('English')
def test_all_write(): tempfn = tempfile.mktemp(prefix='ttname-test-cli-all-write-', suffix='.ttf') TTNameCLI(['--license=bar', '-a', _testfile, tempfn]) tt = TTNameTable(tempfn) assert tt.getName(13,3,1,1033).string == 'bar' os.unlink(tempfn)
def test_short_platform_name_write(): tempfn = tempfile.mktemp(prefix='ttname-test-cli-specific-write-', suffix='.ttf') TTNameCLI(['--name75=baz', '--platform=windows', '--encoding=1', '--lang=1033', _testfile, tempfn]) tt = TTNameTable(tempfn) assert tt.getName(75,3,1,1033).string == 'baz' os.unlink(tempfn)
def test_numeric_write(): tempfn = tempfile.mktemp(prefix='ttname-test-cli-numeric-write-', suffix='.ttf') TTNameCLI(['--name150=bat', _testfile, tempfn]) tt = TTNameTable(tempfn) assert tt.getName(150,1,0,0).string == 'bat' os.unlink(tempfn)
def test_simple_write(): tempfn = tempfile.mktemp(prefix='ttname-test-cli-simple-write-', suffix='.ttf') TTNameCLI(['--copyright=foo', _testfile, tempfn]) tt = TTNameTable(tempfn) print tt.getName(0,1,0,0).string == 'foo' os.unlink(tempfn)
def test_multiple_write(): tempfn = tempfile.mktemp(prefix='ttname-test-cli-multiple-write-', suffix='.ttf') TTNameCLI(['--copyright=herp', '--name75=derp', _testfile, tempfn]) tt = TTNameTable(tempfn) assert tt.getName(0,1,0,0).string == 'herp' assert tt.getName(75,1,0,0).string == 'derp' os.unlink(tempfn)
def test_overwrite_write(): tempfn = tempfile.mktemp(prefix='ttname-test-cli-overwrite-write-', suffix='.ttf') shutil.copy2(_testfile, tempfn) TTNameCLI(['--vendor-url=http://example.com/', tempfn]) tt = TTNameTable(tempfn) assert tt.getName(11,1,0,0).string == 'http://example.com/' os.unlink(tempfn)
def test_write_existing_fields(): tempfh = tempfile.NamedTemporaryFile(prefix='ttname-test-write-existing-', suffix='.ttf', delete=False) tempfn = tempfh.name t = TTNameTable(_testfile) for platID in (1, 3): #windows is funky of course platEncID = 1 if platID == 3 else 0 langID = 1033 if platID == 3 else 0 for nameID in (1, 3, 4, 16): t.getName(nameID, platID, platEncID, langID).string = 'Potato Sans' t.getName(6, platID, platEncID, langID).string = 'PotatoSans' t.save(tempfh) tempfh.close() new_t = TTNameTable(tempfn) for i in (1, 3, 4, 16): assert new_t.getName(i, 1, 0, 0).string == 'Potato Sans' fc = get_fontconfig_data(tempfn) assert fc['family'] == 'Potato Sans' assert fc['style'] == 'Book' assert fc['fullname'] == 'Potato Sans' assert fc['postscriptname'] == 'PotatoSans' os.unlink(tempfn)
def test_write_new_fields(): tempfh = tempfile.NamedTemporaryFile(prefix='ttname-test-write-new-', suffix='.ttf', delete=False) tempfn = tempfh.name t = TTNameTable(_testfile) newfields = (7, 9, 10, 12, 150) for platID in (1, 3): #windows is funky of course platEncID = 1 if platID == 3 else 0 langID = 1033 if platID == 3 else 0 for i in newfields: t.getName(i, platID, platEncID, langID, True).string = 'Cake' t.save(tempfh) tempfh.close() new_t = TTNameTable(tempfn) for i in newfields: assert new_t.getName(i, 1, 0, 0).string == 'Cake' os.unlink(tempfn)
def test_stdout_write(): stdout = sys.stdout sys.stdout = tempfile.NamedTemporaryFile(prefix='ttname-test-cli-stdout-write-', suffix='.ttf', delete=False) tempfn = sys.stdout.name TTNameCLI(['--license-url=http://example.com/', _testfile, '-']) sys.stdout.close() sys.stdout = stdout tt = TTNameTable(tempfn) assert tt.getName(14,1,0,0).string == 'http://example.com/' os.unlink(tempfn)
def test_matches_reality(): t = TTNameTable(_testfile) assert t.getName(0,1,0,0).string.startswith('Copyright (c) 2003 by Bitstream, Inc.') assert t.getName(1,1,0,0).string == 'DejaVu Sans' assert t.getName(2,1,0,0).string == 'Book' assert t.getName(3,1,0,0).string == 'DejaVu Sans' assert t.getName(4,1,0,0).string == 'DejaVu Sans' assert t.getName(5,1,0,0).string == 'Version 2.33' assert t.getName(6,1,0,0).string == 'DejaVuSans' assert t.getName(7,1,0,0) is None assert t.getName(8,1,0,0).string == 'DejaVu fonts team' assert t.getName(9,1,0,0) is None assert t.getName(10,1,0,0) is None assert t.getName(11,1,0,0).string == 'http://dejavu.sourceforge.net' assert t.getName(12,1,0,0) is None assert t.getName(13,1,0,0).string.startswith('Fonts are (c) Bitstream (see below).') assert t.getName(14,1,0,0).string == 'http://dejavu.sourceforge.net/wiki/index.php/License' assert t.getName(15,1,0,0) is None assert t.getName(16,1,0,0).string == 'DejaVu Sans' assert t.getName(17,1,0,0).string == 'Book' assert t.getName(18,1,0,0) is None assert t.getName(19,1,0,0) is None assert t.getName(20,1,0,0) is None
def test_cli_helpers(): tt = TTNameTable(_testfile) rec = tt.getName(1,1,0,0) assert info.trip(rec) == 'Macintosh (#1)/Roman (#0)/English (#0)' assert info.quad(rec) == 'Macintosh (#1)/Roman (#0)/English (#0) font family name (#1)'
def test_get_name_from_all(): t = TTNameTable(_testfile) n = list(t.getNameFromAll(1))[0] assert n.string == 'DejaVu Sans'