예제 #1
0
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
예제 #2
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
예제 #3
0
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)'
예제 #4
0
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')
예제 #5
0
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']
예제 #6
0
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')
예제 #7
0
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)
예제 #8
0
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)
예제 #9
0
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)
예제 #10
0
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)
예제 #11
0
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)
예제 #12
0
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)
예제 #13
0
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)
예제 #14
0
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)
    
예제 #15
0
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)
예제 #16
0
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
예제 #17
0
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)'
예제 #18
0
def test_get_name_from_all():
    t = TTNameTable(_testfile)
    n = list(t.getNameFromAll(1))[0]
    assert n.string == 'DejaVu Sans'