]> git.evergreen-ils.org Git - working/Evergreen.git/blob - build/i18n/tests/testSQL.py
Updating POT files
[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         subprocess.Popen(
36             ('python', self.script, '--pot', self.sqlsource,
37             '--output', self.testpot),
38             0, None, None).wait()
39
40         # avoid basic timestamp conflicts
41         testhelper.mungepothead(self.testpot)
42         testhelper.mungepothead(self.canonpot)
43
44         self.assertEqual(filecmp.cmp(self.canonpot, self.testpot), 1)
45
46     def testgensql(self):
47         """
48         Create a SQL file from a translated PO file.
49         """
50         devnull = open('/dev/null', 'w')
51         subprocess.Popen(
52             ('python', self.script, '--sql', self.canonpo,
53             '--locale', 'zz-ZZ', '--output', self.testsql),
54             0, None, None, devnull, devnull).wait()
55         self.assertEqual(filecmp.cmp(self.canonsql, self.testsql), 1)
56
57 if __name__ == '__main__':
58     unittest.main()