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([])
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 _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 _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
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"])
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'])
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