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):
21 savepot = 'tmp/testsave.pot'
22 saveidlent = 'tmp/testidlent.xml'
23 saveentities = 'tmp/testentity.ent'
24 idlfile = 'data/testidl.xml'
25 idlentfile = 'data/testidlent.xml'
26 idlentities = 'data/testidl.ent'
27 testpot = 'data/testidl.pot'
28 testpo = 'data/testidl.po'
31 sys.path.append('../scripts/')
33 for dir in self.tmpdirs:
37 for dir in self.tmpdirs:
38 if os.access(dir, os.F_OK):
39 for file in os.listdir(dir):
40 os.remove(os.path.join(dir, file))
43 def testentityize(self):
45 Convert an en-US IDL file to an entityized version
47 devnull = open('/dev/null', 'w')
48 proc = subprocess.Popen(
49 ('python', '../scripts/fieldmapper.py', '--convert', self.idlfile,
50 '--output', self.saveidlent),
51 0, None, None, devnull, devnull).wait()
53 self.assertEqual(filecmp.cmp(self.saveidlent, self.idlentfile), 1)
55 def testsavepot(self):
57 Create a POT file from a fieldmapper IDL file
59 devnull = open('/dev/null', 'w')
60 proc = subprocess.Popen(
61 ('python', '../scripts/fieldmapper.py', '--pot', self.idlfile,
62 '--output', self.savepot),
63 0, None, None, devnull, devnull).wait()
65 mungepothead(self.savepot)
66 mungepothead(self.testpot)
68 self.assertEqual(filecmp.cmp(self.savepot, self.testpot), 1)
72 Generate an entity definition file from a PO file
74 devnull = open('/dev/null', 'w')
75 proc = subprocess.Popen(
76 ('python', '../scripts/fieldmapper.py', '--entity', self.testpo,
77 '--output', self.saveentities),
78 0, None, None, devnull, devnull).wait()
79 self.assertEqual(filecmp.cmp(self.saveentities, self.idlentities), 1)
82 def mungepothead(file):
84 Change POT header to avoid annoying timestamp mismatch
87 mungefile = open(file)
88 for line in mungefile:
89 line = re.sub(r'^("POT-Creation-Date: ).+"$', r'\1', line)
93 # Write the changed lines back out
94 mungefile = open(file, 'w')
99 if __name__ == '__main__':