buildframework/helium/sf/python/pythoncore/lib/pythoncorecpythontests/test_sis.py
changeset 628 7c4a911dc066
parent 587 85df38eb4012
equal deleted inserted replaced
588:c7c26511138f 628:7c4a911dc066
    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