2 # vim: set fileencoding=utf-8 :
4 Perform the following tests:
5 1. Generate an entityized version of an abbreviated version of fm_IDL.xml
6 2. Generate a POT file from fm_IDL.xml
7 3. Generate an entity definition file from a PO file
18 class TestIDLL10N(unittest.TestCase):
20 basedir = os.path.dirname(__file__)
21 script = os.path.join(basedir, '../scripts/fieldmapper.py')
22 tmpdirs = [(os.path.join(basedir, 'tmp/'))]
23 savepot = os.path.join(basedir, 'tmp/testsave.pot')
24 saveidlent = os.path.join(basedir, 'tmp/testidlent.xml')
25 saveentities = os.path.join(basedir, 'tmp/testentity.ent')
26 idlfile = os.path.join(basedir, 'data/testidl.xml')
27 idlentfile = os.path.join(basedir, 'data/testidlent.xml')
28 idlentities = os.path.join(basedir, 'data/testidl.ent')
29 testpot = os.path.join(basedir, 'data/testidl.pot')
30 testpo = os.path.join(basedir, 'data/testidl.po')
33 sys.path.append(os.path.join(self.basedir, '../scripts/'))
35 for dir in self.tmpdirs:
39 for dir in self.tmpdirs:
40 if os.access(dir, os.F_OK):
41 for file in os.listdir(dir):
42 os.remove(os.path.join(dir, file))
45 def testentityize(self):
47 Convert an en-US IDL file to an entityized version
49 devnull = open('/dev/null', 'w')
50 proc = subprocess.Popen(
51 ('python', self.script, '--convert', self.idlfile,
52 '--output', self.saveidlent),
53 0, None, None, devnull, devnull).wait()
55 self.assertEqual(filecmp.cmp(self.saveidlent, self.idlentfile), 1)
57 def testsavepot(self):
59 Create a POT file from a fieldmapper IDL file
61 devnull = open('/dev/null', 'w')
62 proc = subprocess.Popen(
63 ('python', self.script, '--pot', self.idlfile,
64 '--output', self.savepot),
65 0, None, None, devnull, devnull).wait()
67 mungepothead(self.savepot)
68 mungepothead(self.testpot)
70 self.assertEqual(filecmp.cmp(self.savepot, self.testpot), 1)
74 Generate an entity definition file from a PO file
76 devnull = open('/dev/null', 'w')
77 proc = subprocess.Popen(
78 ('python', self.script, '--entity', self.testpo,
79 '--output', self.saveentities),
80 0, None, None, devnull, devnull).wait()
81 self.assertEqual(filecmp.cmp(self.saveentities, self.idlentities), 1)
84 def mungepothead(file):
86 Change POT header to avoid annoying timestamp mismatch
89 mungefile = open(file)
90 for line in mungefile:
91 line = re.sub(r'^("POT-Creation-Date: ).+"$', r'\1', line)
95 # Write the changed lines back out
96 mungefile = open(file, 'w')
101 if __name__ == '__main__':