]> git.evergreen-ils.org Git - working/Evergreen.git/blob - build/i18n/tests/testIDL.py
Translation updates - po files
[working/Evergreen.git] / build / i18n / tests / testIDL.py
1 #!/usr/bin/env python
2 # vim: set fileencoding=utf-8 :
3 """
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
8 """
9
10 import filecmp
11 import os
12 import subprocess
13 import testhelper
14 import unittest
15
16 class TestIDLL10N(unittest.TestCase):
17
18     basedir = os.path.dirname(__file__)
19     script = os.path.join(basedir, '../scripts/fieldmapper.py')
20     tmpdirs = [(os.path.join(basedir, 'tmp/'))]
21     savepot = os.path.join(basedir, 'tmp/testsave.pot')
22     saveidlent = os.path.join(basedir, 'tmp/testidlent.xml')
23     saveentities = os.path.join(basedir, 'tmp/testentity.ent')
24     idlfile = os.path.join(basedir, 'data/testidl.xml')
25     idlentfile = os.path.join(basedir, 'data/testidlent.xml')
26     idlentities = os.path.join(basedir, 'data/testidl.ent')
27     testpot = os.path.join(basedir, 'data/testidl.pot')
28     testpo = os.path.join(basedir, 'data/testidl.po')
29
30     def setUp(self):
31         testhelper.setUp(self)
32
33     def tearDown(self):
34         testhelper.tearDown(self)
35
36     def testentityize(self):
37         """
38         Convert an en-US IDL file to an entityized version
39         """
40         devnull = open('/dev/null', 'w')
41         subprocess.Popen(
42             ('python', self.script, '--convert', self.idlfile,
43             '--output', self.saveidlent),
44             0, None, None, devnull, devnull).wait()
45
46         self.assertEqual(filecmp.cmp(self.saveidlent, self.idlentfile), 1)
47
48     def testsavepot(self):
49         """
50         Create a POT file from a fieldmapper IDL file
51         """
52         devnull = open('/dev/null', 'w')
53         subprocess.Popen(
54             ('python', self.script, '--pot', self.idlfile,
55             '--output', self.savepot),
56             0, None, None, devnull, devnull).wait()
57
58         # Avoid timestamp mismatches
59         testhelper.mungepothead(self.savepot)
60         testhelper.mungepothead(self.testpot)
61
62         self.assertEqual(filecmp.cmp(self.savepot, self.testpot), 1)
63
64     def testgenent(self):
65         """
66         Generate an entity definition file from a PO file
67         """
68         devnull = open('/dev/null', 'w')
69         subprocess.Popen(
70             ('python', self.script, '--entity', self.testpo,
71             '--output', self.saveentities),
72             0, None, None, devnull, devnull).wait()
73         self.assertEqual(filecmp.cmp(self.saveentities, self.idlentities), 1)
74
75 if __name__ == '__main__':
76     unittest.main()