]> git.evergreen-ils.org Git - working/Evergreen.git/blob - build/i18n/tests/testIDL.py
Implement SQL localization tests.
[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 polib
13 import re
14 import subprocess
15 import testhelper
16 import unittest
17
18 class TestIDLL10N(unittest.TestCase):
19
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')
31
32     def setUp(self):
33         testhelper.setUp(self)
34
35     def tearDown(self):
36         testhelper.tearDown(self)
37
38     def testentityize(self):
39         """
40         Convert an en-US IDL file to an entityized version
41         """
42         devnull = open('/dev/null', 'w')
43         proc = subprocess.Popen(
44             ('python', self.script, '--convert', self.idlfile,
45             '--output', self.saveidlent),
46             0, None, None, devnull, devnull).wait()
47
48         self.assertEqual(filecmp.cmp(self.saveidlent, self.idlentfile), 1)
49
50     def testsavepot(self):
51         """
52         Create a POT file from a fieldmapper IDL file
53         """
54         devnull = open('/dev/null', 'w')
55         proc = subprocess.Popen(
56             ('python', self.script, '--pot', self.idlfile,
57             '--output', self.savepot),
58             0, None, None, devnull, devnull).wait()
59
60         # Avoid timestamp mismatches
61         testhelper.mungepothead(self.savepot)
62         testhelper.mungepothead(self.testpot)
63
64         self.assertEqual(filecmp.cmp(self.savepot, self.testpot), 1)
65
66     def testgenent(self):
67         """
68         Generate an entity definition file from a PO file
69         """
70         devnull = open('/dev/null', 'w')
71         proc = subprocess.Popen(
72             ('python', self.script, '--entity', self.testpo,
73             '--output', self.saveentities),
74             0, None, None, devnull, devnull).wait()
75         self.assertEqual(filecmp.cmp(self.saveentities, self.idlentities), 1)
76
77 if __name__ == '__main__':
78     unittest.main()