]> git.evergreen-ils.org Git - working/Evergreen.git/blob - build/i18n/tests/testSQL.py
Implement SQL localization tests.
[working/Evergreen.git] / build / i18n / tests / testSQL.py
1 #!/usr/bin/env python
2 #
3 # Perform the following tests:
4 #  1. Generate a POT file from a set of marked SQL statements
5 #  2. Generate an SQL file from a translated PO file
6
7 import filecmp
8 import os
9 import subprocess
10 import testhelper
11 import unittest
12
13 class TestSQLFramework(unittest.TestCase):
14
15     basedir = os.path.dirname(__file__)
16     script = os.path.join(basedir, '../scripts/db-seed-i18n.py')
17     tmpdirs = [(os.path.join(basedir, 'tmp/'))]
18     sqlsource = os.path.join(basedir, 'data/sqlsource.sql')
19     canonpot = os.path.join(basedir, 'data/sql2pot.pot')
20     canonpo = os.path.join(basedir, 'data/sqlsource.po')
21     testpot = os.path.join(basedir, 'tmp/sql2pot.pot')
22     canonsql = os.path.join(basedir, 'data/po2sql.sql')
23     testsql = os.path.join(basedir, 'tmp/testi18n.sql')
24
25     def setUp(self):
26         testhelper.setUp(self)
27
28     def tearDown(self):
29         testhelper.tearDown(self)
30
31     def testgenpot(self):
32         """
33         Create a POT file from our test SQL statements.
34         """
35         devnull = open('/dev/null', 'w')
36         proc = subprocess.Popen(
37             ('python', self.script, '--pot', self.sqlsource,
38             '--output', self.testpot),
39             0, None, None).wait()
40
41         # avoid basic timestamp conflicts
42         testhelper.mungepothead(self.testpot)
43         testhelper.mungepothead(self.canonpot)
44
45         self.assertEqual(filecmp.cmp(self.canonpot, self.testpot), 1)
46
47     def testgensql(self):
48         """
49         Create a SQL file from a translated PO file.
50         """
51         devnull = open('/dev/null', 'w')
52         proc = subprocess.Popen(
53             ('python', self.script, '--sql', self.canonpo,
54             '--locale', 'zz-ZZ', '--output', self.testsql),
55             0, None, None, devnull, devnull).wait()
56         self.assertEqual(filecmp.cmp(self.canonsql, self.testsql), 1)
57
58 if __name__ == '__main__':
59     unittest.main()