Esempio n. 1
0
 def setUp(self):
     """
     Provide sample .ini file-like object
     """
     self.config = ConfigParser()
     INI.seek(0)
     self.config.readfp(INI)
 def __call__(self, context):
     """
     """
     config_path = os.path.normpath(get_config_path())
     config_file = open(config_path, 'r')
     config_parser = ConfigParser()
     try:
         config_parser.readfp(config_file)
     except ParsingError, e:
         message = _(u"Error when trying to parse '%s'" % config_path)
         messages = IStatusMessage(context.context.request)
         messages.addStatusMessage(_(e.message), type='error')
         return SimpleVocabulary([])
Esempio n. 3
0
 def __call__(self, context):
     """
     """
     config_path = os.path.normpath(get_config_path())
     config_file = open(config_path, 'r')
     config_parser = ConfigParser()
     try:
         config_parser.readfp(config_file)
     except ParsingError, e:
         message = _(u"Error when trying to parse '%s'" % config_path)
         messages = IStatusMessage(context.context.request)
         messages.addStatusMessage(_(e.message), type='error')
         return SimpleVocabulary([])
    def _locked_on_save(self, data):
        """
        Do static deployment.
        """
        messages = IStatusMessage(self.request)
        username = getToolByName(self.context, 'portal_membership').getMemberInfo().get('username', '')

        config_path = os.path.normpath(get_config_path())
        config_file = open(config_path, 'r')
        config_parser = ConfigParser()
        try:
            config_parser.readfp(config_file)
        except ParsingError, e:
            message = _(u"Error when trying to parse '%s'" % config_path)
            messages.addStatusMessage(message, type='error')
            return
 def setUp(self):
     """
     Provide sample .ini file-like object
     """
     self.config = ConfigParser()
     INI.seek(0)
     self.config.readfp(INI)
Esempio n. 6
0
    def _locked_on_save(self, data):
        """
        Do static deployment.
        """
        messages = IStatusMessage(self.request)
        username = getToolByName(self.context,
                                 'portal_membership').getMemberInfo().get(
                                     'username', '')

        config_path = os.path.normpath(get_config_path())
        config_file = open(config_path, 'r')
        config_parser = ConfigParser()
        try:
            config_parser.readfp(config_file)
        except ParsingError, e:
            message = _(u"Error when trying to parse '%s'" % config_path)
            messages.addStatusMessage(message, type='error')
            return
Esempio n. 7
0
 def _read_config(self, section):
     """
     Read config from .ini file.
     """
     # get path to config file and read it
     config_path = os.path.normpath(get_config_path())
     config_file = open(config_path, "r")
     # parse file in ConfigParser
     self.config = ConfigParser()
     try:
         self.config.readfp(config_file)
     except ParsingError, e:
         log.exception("Error when trying to parse '%s'" % config_path)
         return
Esempio n. 8
0
class StaticDeploymentUtils(object):
    """
    View for static deployment.
    """

    def _apply_request_modifications(self):
        """
        Apply proper skin name and five skinlayer.
        """
        skins_tool = getToolByName(self.context, "portal_skins")
        request_varname = skins_tool.request_varname

        layer_interface_path = self.layer_interface.split(".")
        layer_interface_module = __import__(".".join(layer_interface_path[:-1]), {}, {}, layer_interface_path[-1])
        applySkin(self.request, getattr(layer_interface_module, layer_interface_path[-1], None))
        self.context.changeSkin(self.defaultskin_name, self.request)
        self.request.set(request_varname, self.defaultskin_name)
        self.request.method = "GET"
        self.request.set("PUBLISHED", None)

        self.base_dir = os.path.normpath(self.deployment_directory)
        self.deployed_resources = []

    def revert_request_modifications(self, context, request):
        """
        Apply plone default skin name and five skinlayer.
        """
        skins_tool = getToolByName(context, "portal_skins")
        request_varname = skins_tool.request_varname
        applySkin(request, IDefaultBrowserLayer)
        context.changeSkin(None, request)
        request.set(request_varname, None)

    def _read_config(self, section):
        """
        Read config from .ini file.
        """
        # get path to config file and read it
        config_path = os.path.normpath(get_config_path())
        config_file = open(config_path, "r")
        # parse file in ConfigParser
        self.config = ConfigParser()
        try:
            self.config.readfp(config_file)
        except ParsingError, e:
            log.exception("Error when trying to parse '%s'" % config_path)
            return
        # non required params
        # list-like params
        self.page_types = self.config.get_as_list("page-types", section=section)
        self.file_types = self.config.get_as_list("file-types", section=section)
        self.skinstool_files = self.config.get_as_list("skinstool-files", section=section)
        self.additional_files = self.config.get_as_list("additional-files", section=section)
        self.additional_pages = self.config.get_as_list("additional-pages", section=section)
        self.deployment_steps = self.config.get_as_list("deployment-steps", section=section)
        self.additional_directories = self.config.get_as_list("additional-directories", section=section)
        self.excluded_content_directories = self.config.get_as_list("excluded-content-directories", section=section)

        # params with default values
        # boolean params
        self.relative_links = self.config.getboolean(section, "make-links-relative", False)
        self.add_index = self.config.getboolean(section, "add-index", False)
        self.rss_base_url = self.config.get(section, "rss-base-url", "")
        self.deploy_plonesite = self.config.getboolean(section, "deploy-plonesite", True)
        self.deploy_registry_files = self.config.getboolean(section, "deploy-registry-files", True)
        # list param
        self.deployable_review_states = self.config.get_as_list("deployable-review-states", section=section)
        if not self.deployable_review_states:
            self.deployable_review_states = ["published"]
        # required params
        try:
            self.deployment_directory = self.config.get(section, "deployment-directory").strip()
            self.layer_interface = self.config.get(section, "layer-interface").strip()
            self.defaultskin_name = self.config.get(section, "defaultskin-name").strip()
        except NoOptionError, e:
            messages = IStatusMessage(self.request)
            messages.addStatusMessage(_(e.message), type="error")
            raise e
class TestConfigParser(unittest.TestCase):
    """
    Test our ConfigParser features
    """

    def setUp(self):
        """
        Provide sample .ini file-like object
        """
        self.config = ConfigParser()
        INI.seek(0)
        self.config.readfp(INI)

    def test_bool_correct_formats(self):
        """
        Tests reading correct formats of boolean values
        """
        # true
        self.assertTrue(self.config.getboolean(SECTION, "bool-option-t-1"))
        self.assertTrue(self.config.getboolean(SECTION, "bool-option-t-2"))
        self.assertTrue(self.config.getboolean(SECTION, "bool-option-t-3"))
        self.assertTrue(self.config.getboolean(SECTION, "bool-option-t-4"))
        # false
        self.assertFalse(self.config.getboolean(SECTION, "bool-option-f-1"))
        self.assertFalse(self.config.getboolean(SECTION, "bool-option-f-2"))
        self.assertFalse(self.config.getboolean(SECTION, "bool-option-f-3"))
        self.assertFalse(self.config.getboolean(SECTION, "bool-option-f-4"))

    def test_bool_incorrect_format(self):
        """
        Tests if ConfigParser correctly raises ValueError when trying to read
        incorrect boolean value format
        """
        self.assertRaises(ValueError, self.config.getboolean, SECTION, "wrong-bool-option")

    def test_bool_nonexistiong_section(self):
        """
        Test if correct exceptions will be raised when trying to get bool
        option from nonexisting section
        """
        self.assertRaises(NoSectionError, self.config.getboolean, WRONG_SECTION, "bool-option")

    def test_existing_bool_with_default(self):
        """
        Tests if boolean values will be returned correctly when using default
        parameter
        """
        # true
        self.assertTrue(self.config.getboolean(SECTION, "bool-option-t-1", True))
        self.assertTrue(self.config.getboolean(SECTION, "bool-option-t-1", False))
        # false
        self.assertFalse(self.config.getboolean(SECTION, "bool-option-f-1", True))
        self.assertFalse(self.config.getboolean(SECTION, "bool-option-f-1", False))

    def test_existing_bool_without_default(self):
        """
        Tests if boolean values will be returned correctly whitout default
        parameter
        """
        # true
        self.assertTrue(self.config.getboolean(SECTION, "bool-option-t-1"))
        self.assertTrue(self.config.getboolean(SECTION, "bool-option-t-1"))
        # false
        self.assertFalse(self.config.getboolean(SECTION, "bool-option-f-1"))
        self.assertFalse(self.config.getboolean(SECTION, "bool-option-f-1"))

    def test_nonexisting_bool_with_default(self):
        """
        Tests if ConfigParser will return default value when trying to get
        nonexisting option when default value is provided
        """
        self.assertTrue(self.config.getboolean(SECTION, "some-bool", True))
        self.assertFalse(self.config.getboolean(SECTION, "some-bool", False))

    def test_nonexisting_bool_without_default(self):
        """
        Tests if ConfigParser will raise an exception when trying to get
        nonexisting option without providing default value
        """
        self.assertRaises(NoOptionError, self.config.getboolean, SECTION, "some-bool")

    def test_list_with_correct_section_provided(self):
        """
        Test if ConfigParser.get_as_list will return correct values when
        section will be passed as argument
        """
        self.assertEqual(self.config.get_as_list("list-option-1", section=SECTION), LIST_VALUES)

    def test_list_with_incorrect_section_provided(self):
        """
        Test if ConfigParser.get_as_list will return empty list (False) when
        trying to get option from incorrect section
        """
        self.assertFalse(self.config.get_as_list("list-option-1", section=WRONG_SECTION))

    def test_list_with_one_value(self):
        """
        Test if ConfigParser.get_as_list will return list with one element
        correctly
        """
        self.assertEqual(self.config.get_as_list("list-option-2", section=SECTION), ["one-element"])
Esempio n. 10
0
class TestConfigParser(unittest.TestCase):
    """
    Test our ConfigParser features
    """
    def setUp(self):
        """
        Provide sample .ini file-like object
        """
        self.config = ConfigParser()
        INI.seek(0)
        self.config.readfp(INI)

    def test_bool_correct_formats(self):
        """
        Tests reading correct formats of boolean values
        """
        #true
        self.assertTrue(self.config.getboolean(SECTION, 'bool-option-t-1'))
        self.assertTrue(self.config.getboolean(SECTION, 'bool-option-t-2'))
        self.assertTrue(self.config.getboolean(SECTION, 'bool-option-t-3'))
        self.assertTrue(self.config.getboolean(SECTION, 'bool-option-t-4'))
        #false
        self.assertFalse(self.config.getboolean(SECTION, 'bool-option-f-1'))
        self.assertFalse(self.config.getboolean(SECTION, 'bool-option-f-2'))
        self.assertFalse(self.config.getboolean(SECTION, 'bool-option-f-3'))
        self.assertFalse(self.config.getboolean(SECTION, 'bool-option-f-4'))

    def test_bool_incorrect_format(self):
        """
        Tests if ConfigParser correctly raises ValueError when trying to read
        incorrect boolean value format
        """
        self.assertRaises(ValueError, self.config.getboolean, SECTION,
            'wrong-bool-option')

    def test_bool_nonexistiong_section(self):
        """
        Test if correct exceptions will be raised when trying to get bool
        option from nonexisting section
        """
        self.assertRaises(NoSectionError, self.config.getboolean, WRONG_SECTION,
                'bool-option')

    def test_existing_bool_with_default(self):
        """
        Tests if boolean values will be returned correctly when using default
        parameter
        """
        #true
        self.assertTrue(self.config.getboolean(SECTION, 'bool-option-t-1', True))
        self.assertTrue(self.config.getboolean(SECTION, 'bool-option-t-1', False))
        #false
        self.assertFalse(self.config.getboolean(SECTION, 'bool-option-f-1', True))
        self.assertFalse(self.config.getboolean(SECTION, 'bool-option-f-1', False))

    def test_existing_bool_without_default(self):
        """
        Tests if boolean values will be returned correctly whitout default
        parameter
        """
        #true
        self.assertTrue(self.config.getboolean(SECTION, 'bool-option-t-1'))
        self.assertTrue(self.config.getboolean(SECTION, 'bool-option-t-1'))
        #false
        self.assertFalse(self.config.getboolean(SECTION, 'bool-option-f-1'))
        self.assertFalse(self.config.getboolean(SECTION, 'bool-option-f-1'))

    def test_nonexisting_bool_with_default(self):
        """
        Tests if ConfigParser will return default value when trying to get
        nonexisting option when default value is provided
        """
        self.assertTrue(self.config.getboolean(SECTION, 'some-bool', True))
        self.assertFalse(self.config.getboolean(SECTION, 'some-bool', False))

    def test_nonexisting_bool_without_default(self):
        """
        Tests if ConfigParser will raise an exception when trying to get
        nonexisting option without providing default value
        """
        self.assertRaises(NoOptionError, self.config.getboolean, SECTION, 'some-bool')

    def test_list_with_correct_section_provided(self):
        """
        Test if ConfigParser.get_as_list will return correct values when
        section will be passed as argument
        """
        self.assertEqual(self.config.get_as_list('list-option-1',
            section=SECTION), LIST_VALUES)

    def test_list_with_incorrect_section_provided(self):
        """
        Test if ConfigParser.get_as_list will return empty list (False) when
        trying to get option from incorrect section
        """
        self.assertFalse(self.config.get_as_list('list-option-1',
            section=WRONG_SECTION))

    def test_list_with_one_value(self):
        """
        Test if ConfigParser.get_as_list will return list with one element
        correctly
        """
        self.assertEqual(self.config.get_as_list('list-option-2',
            section=SECTION), ['one-element'])
Esempio n. 11
0
class StaticDeploymentUtils(object):
    """
    View for static deployment.
    """

    def _apply_request_modifications(self):
        """
        Apply proper skin name and five skinlayer.
        """
        skins_tool = getToolByName(self.context, 'portal_skins')
        request_varname = skins_tool.request_varname

        layer_interface_path = self.layer_interface.split('.')
        layer_interface_module = __import__('.'.join(layer_interface_path[:-1]), {}, {}, layer_interface_path[-1])
        applySkin(self.request, getattr(layer_interface_module, layer_interface_path[-1], None))
        self.context.changeSkin(self.defaultskin_name, self.request)
        self.request.set(request_varname, self.defaultskin_name)
        self.request.method = 'GET'
        self.request.set('PUBLISHED', None)
        self.deployed_resources = []

        if os.path.isabs(self.deployment_directory):
            self.base_dir = self.deployment_directory
        else:
            client_home = os.environ.get('CLIENT_HOME', '')
            path = os.path.join(client_home, self.deployment_directory)
            self.base_dir = os.path.abspath(path)
        log.info('Static deployment will be saved in %s' % self.base_dir)

    def revert_request_modifications(self, context, request):
        """
        Apply plone default skin name and five skinlayer.
        """
        skins_tool = getToolByName(context, 'portal_skins')
        request_varname = skins_tool.request_varname
        applySkin(request, IDefaultBrowserLayer)
        context.changeSkin(None, request)
        request.set(request_varname, None)

    def _read_config(self, section):
        """
        Read config from .ini file.
        """
        # get path to config file and read it
        config_path = os.path.normpath(get_config_path())
        config_file = open(config_path, 'r')
        # parse file in ConfigParser
        self.config = ConfigParser()
        try:
            self.config.readfp(config_file)
        except ParsingError, e:
            log.exception("Error when trying to parse '%s'" % config_path)
            return
        # non required params
        # list-like params
        self.page_types = self.config.get_as_list('page-types', section=section)
        self.file_types = self.config.get_as_list('file-types', section=section)
        self.skinstool_files = self.config.get_as_list('skinstool-files',
            section=section)
        self.additional_files = self.config.get_as_list('additional-files',
            section=section)
        self.additional_pages = self.config.get_as_list('additional-pages',
            section=section)
        self.deployment_steps = self.config.get_as_list('deployment-steps',
            section=section)
        self.additional_directories = self.config.get_as_list(
            'additional-directories', section=section)
        try:
            self.path_filter = self.config.get(section, 'path_filter', '').strip()
        except NoOptionError:
            self.path_filter = ''
        # params with default values
        # boolean params
        self.relative_links = self.config.getboolean(section,
                'make-links-relative', False)
        self.add_index = self.config.getboolean(section, 'add-index', False)
        self.rss_base_url = self.config.get(section, 'rss-base-url', '')
        self.deploy_plonesite = self.config.getboolean(section,
                'deploy-plonesite', True)
        self.deploy_registry_files = self.config.getboolean(section,
                'deploy-registry-files', True)
        # list param
        self.deployable_review_states = self.config.get_as_list(
                'deployable-review-states', section=section)
        if not self.deployable_review_states:
            self.deployable_review_states = ['published']
        # required params
        try:
            self.deployment_directory = self.config.get(
                section, 'deployment-directory').strip()
            self.layer_interface = self.config.get(
                section, 'layer-interface').strip()
            self.defaultskin_name = self.config.get(
                    section, 'defaultskin-name').strip()
        except NoOptionError, e:
            messages = IStatusMessage(self.request)
            messages.addStatusMessage(_(e.message), type='error')
            raise e