1ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta#!/usr/bin/env python 2ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta 3ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta"""Tests build_font.py by renaming a font. 4ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta 5ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu GuptaThe test copies Roboto-Regular.ttf to a tmp directory and ask build_font.py to rename it and put in another dir. 6ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu GuptaWe then use ttx to dump the new font to its xml and check if rename was successful 7ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta 8ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu GuptaTo test locally, use: 9ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu GuptaPYTHONPATH="$PYTHONPATH:/path/to/android/checkout/external/fonttools/Lib" ./test.py 10ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta""" 11ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta 12ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Guptaimport unittest 13ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Guptaimport build_font 14ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta 15ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Guptafrom fontTools import ttx 16ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Guptaimport os 17125714173b5ef296f8d50191edcfceedcb19dbdeDeepanshu Guptaimport xml.etree.ElementTree as etree 18ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Guptaimport shutil 19ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Guptaimport tempfile 20ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta 21ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Guptaclass MyTest(unittest.TestCase): 22ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta def test(self): 23ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta font_name = "Roboto-Regular.ttf" 24ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta srcdir = tempfile.mkdtemp() 25ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta print "srcdir: " + srcdir 26ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta shutil.copy(font_name, srcdir) 27ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta destdir = tempfile.mkdtemp() 28ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta print "destdir: " + destdir 29ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta self.assertTrue(build_font.main([srcdir, destdir]) is None) 30ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta out_path = os.path.join(destdir, font_name) 31ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta ttx.main([out_path]) 32ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta ttx_path = out_path[:-1] + "x" 33ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta tree = etree.parse(ttx_path) 34ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta root = tree.getroot() 35ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta name_tag = root.find('name') 367ea293bc6a31c5b1bf3b2663376a39dc3a79b671Deepanshu Gupta fonts = build_font.get_font_info(name_tag) 37ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta shutil.rmtree(srcdir) 38ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta shutil.rmtree(destdir) 397ea293bc6a31c5b1bf3b2663376a39dc3a79b671Deepanshu Gupta self.assertEqual(fonts[0].family, "Roboto1200310") 407ea293bc6a31c5b1bf3b2663376a39dc3a79b671Deepanshu Gupta self.assertEqual(fonts[0].fullname, "Roboto1200310 Regular") 41ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta 42ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta 43ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta 44ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Guptaif __name__ == '__main__': 45ad3f2883112102c5ca4f0ce5d8f9e9df62a62f57Deepanshu Gupta unittest.main() 46