opitmised code
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
import os.path
|
||||
import sys
|
||||
from optparse import OptionParser
|
||||
from pyfiglet import Figlet
|
||||
from subprocess import Popen, PIPE
|
||||
|
||||
__version__ = '0.1'
|
||||
|
||||
def dump(text):
|
||||
for line in text.split('\n'):
|
||||
print(repr(line))
|
||||
|
||||
def main():
|
||||
parser = OptionParser(version=__version__)
|
||||
|
||||
parser.add_option('-s', '--show', action='store_true', default=False,
|
||||
help='pause at each failure and compare output '
|
||||
'(default: %default)')
|
||||
|
||||
opts, args = parser.parse_args()
|
||||
|
||||
f = Figlet()
|
||||
|
||||
ok = 0
|
||||
fail = 0
|
||||
failed = []
|
||||
skip = ['runic'] # known bug..
|
||||
|
||||
for font in f.getFonts():
|
||||
if font in skip: continue
|
||||
|
||||
f.setFont(font=font)
|
||||
|
||||
outputPyfiglet = f.renderText('foo')
|
||||
|
||||
fontpath = os.path.join('pyfiglet', 'fonts', font)
|
||||
if os.path.isfile(fontpath + '.flf'):
|
||||
cmd = ('figlet', '-d', 'pyfiglet/fonts', '-f', font, 'foo')
|
||||
elif os.path.isfile(fontpath + '.tlf'):
|
||||
cmd = ('toilet', '-d', 'pyfiglet/fonts', '-f', font, 'foo')
|
||||
else:
|
||||
raise Exception('Missing font file: '+fontpath)
|
||||
|
||||
p = Popen(cmd, bufsize=1,stdout=PIPE)
|
||||
outputFiglet = p.communicate()[0].decode('ascii', 'replace')
|
||||
|
||||
if outputPyfiglet == outputFiglet:
|
||||
print('[OK] %s' % font)
|
||||
ok += 1
|
||||
continue
|
||||
|
||||
print('[FAIL] %s' % font)
|
||||
fail += 1
|
||||
failed.append(font)
|
||||
|
||||
if opts.show is True:
|
||||
print('[PYTHON] *** %s\n\n' % font)
|
||||
dump(outputPyfiglet)
|
||||
print('[FIGLET] *** %s\n\n' % font)
|
||||
dump(outputFiglet)
|
||||
raw_input()
|
||||
|
||||
print('OK = %d, FAIL = %d' % (ok, fail))
|
||||
if len(failed) > 0:
|
||||
print('FAILED = %s' % repr(failed))
|
||||
|
||||
return 0
|
||||
|
||||
if __name__ == '__main__': sys.exit(main())
|
||||
Reference in New Issue
Block a user