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