21 |
21 |
22 import logging |
22 import logging |
23 import unittest |
23 import unittest |
24 import tempfile |
24 import tempfile |
25 import os |
25 import os |
26 from lxml import etree |
26 import amara |
27 |
|
28 import configuration |
27 import configuration |
29 import sis |
28 import sis |
30 |
29 |
31 _logger = logging.getLogger('test.sis') |
30 _logger = logging.getLogger('test.sis') |
32 |
|
33 |
31 |
34 class ArchivePreBuilderTest(unittest.TestCase): |
32 class ArchivePreBuilderTest(unittest.TestCase): |
35 """ Tests for sis module. """ |
33 """ Tests for sis module. """ |
36 |
34 |
37 def test_sis_v1(self): |
35 def test_sis_v1(self): |
38 """ V1 config format. """ |
36 """ V1 config format. """ |
39 data = {'name': 'foo', |
37 data = {'name': 'foo', |
40 'path': 'bar'} |
38 'path': 'bar'} |
41 tree = self._setup_test_case(data) |
39 tree = self._setup_test_case(data) |
42 assert tree.xpath("/project/target[@name='stage1']/parallel/*/arg/@line")[0] == '-v foo.pkg foo.sis' |
40 assert tree.xml_xpath("/project/target[@name='stage1']/parallel/*/arg/@line")[0] == '-v foo.pkg foo.sis' |
43 |
41 |
44 def test_sis_v2(self): |
42 def test_sis_v2(self): |
45 """ V2 config format. """ |
43 """ V2 config format. """ |
46 data = {'input': 'foo.pkg'} |
44 data = {'input': 'foo.pkg'} |
47 tree = self._setup_test_case(data) |
45 tree = self._setup_test_case(data) |
48 assert tree.xpath("/project/target[@name='stage1']/parallel/*/arg/@line")[0] == '-v foo.pkg foo.sis' |
46 assert tree.xml_xpath("/project/target[@name='stage1']/parallel/*/arg/@line")[0] == '-v foo.pkg foo.sis' |
49 |
47 |
50 def test_sis_v2_1(self): |
48 def test_sis_v2_1(self): |
51 """ V2 config format for sisx. """ |
49 """ V2 config format for sisx. """ |
52 data = {'input': 'foo.pkg', 'output': 'foo.sisx'} |
50 data = {'input': 'foo.pkg', 'output': 'foo.sisx'} |
53 tree = self._setup_test_case(data) |
51 tree = self._setup_test_case(data) |
54 assert tree.xpath("/project/target[@name='stage1']/parallel/*/arg/@line")[0] == '-v foo.pkg foo.sis' |
52 assert tree.xml_xpath("/project/target[@name='stage1']/parallel/*/arg/@line")[0] == '-v foo.pkg foo.sis' |
55 assert tree.xpath("/project/target[@name='stage2']/parallel/*/arg/@line")[0] == '-v foo.sis foo.sisx cert1 key1' |
53 assert tree.xml_xpath("/project/target[@name='stage2']/parallel/*/arg/@line")[0] == '-v foo.sis foo.sisx cert1 key1' |
56 |
54 |
57 def _setup_test_case(self, additional_data): |
55 def _setup_test_case(self, additional_data): |
58 """ Setup test case based on varying inputs. """ |
56 """ Setup test case based on varying inputs. """ |
59 data = {'makesis.tool': 'makesis', |
57 data = {'makesis.tool': 'makesis', |
60 'signsis.tool': 'signsis', |
58 'signsis.tool': 'signsis', |
64 data.update(additional_data) |
62 data.update(additional_data) |
65 config = configuration.ConfigurationSet([configuration.Configuration(data)]) |
63 config = configuration.ConfigurationSet([configuration.Configuration(data)]) |
66 sis_prebuilder = sis.SisPreBuilder(config) |
64 sis_prebuilder = sis.SisPreBuilder(config) |
67 tmpfile = os.path.join(tempfile.mkdtemp(), 'test.xml') |
65 tmpfile = os.path.join(tempfile.mkdtemp(), 'test.xml') |
68 sis_prebuilder.write(tmpfile) |
66 sis_prebuilder.write(tmpfile) |
69 tree = etree.parse(tmpfile) |
67 tree = amara.parse(open(tmpfile)) |
70 return tree |
68 return tree |
71 |
69 |
72 |
70 |
73 |
71 |
74 |
72 |