def test_find_node_success(self): sample = """<?xml version="1.0" encoding="utf-8"?> <server></server> """ root_node = minidom.parse(StringIO.StringIO(sample)) result = LoaderUtilities.find_node("file_name", root_node, "server") self.assertEquals('server', result.tagName)
def test_find_node_success(self): sample = """<?xml version="1.0" encoding="utf-8"?> <server></server> """ root_node = minidom.parse(StringIO.StringIO(sample)) result = LoaderUtilities.find_node("file_name",root_node, "server") self.assertEquals('server', result.tagName)
def _parse_from_stream(self, stream, directory, file_path, address): level_dom = self._parse_dom(stream, file_path) # Check schema schema_checker = SchemaChecker.SchemaChecker() schema_checker.check_schema(file_path, self.XSD_FILE_PATH) level_node = LoaderUtilities.find_node(file_path, level_dom, self.SUB_LEVEL + 's') # Load important nodes configuration_nodes = LoaderUtilities.find_nodes(file_path, level_node, 'configuration') user_nodes = LoaderUtilities.find_nodes(file_path, level_node, 'user') runner_nodes = LoaderUtilities.find_nodes(file_path, level_node, 'runner') sub_level_nodes = LoaderUtilities.find_nodes(file_path, level_node, self.SUB_LEVEL) # Parse nodes configurations = self._parse_configurations(directory, configuration_nodes) runner = self._parse_runner(directory, runner_nodes) sub_levels = self._parse_level(address, directory, sub_level_nodes) # Return structure level_configuration = self.CONFIG_CLASS( None, configurations, sub_levels, runner = runner, ) # We know there can be 0 or 1 node... if len(user_nodes) > 0: level_configuration.user = LoaderUtilities.obtain_text_safe(user_nodes[0]) return level_configuration
def _parse_creation(self, file_path, protocol_node): creation_node = LoaderUtilities.find_node(file_path, protocol_node, 'creation') parameters = self._parse_parameters(file_path, creation_node) creation_configuration = ConfigurationData.CreationConfiguration( parameters ) return creation_configuration
def test_find_node_too_many(self): sample = """<?xml version="1.0" encoding="utf-8"?> <server> <configuration/> <configuration/> </server> """ root_node = minidom.parse(StringIO.StringIO(sample)) server_node = LoaderUtilities.find_node('file_name', root_node, 'server') self.assertRaises(LoaderErrors.InvalidSyntaxFileConfigurationError, LoaderUtilities.find_node, "file_name", server_node, "configuration")
def _parse_from_stream(self, stream, directory, file_path, address): server_dom = self._parse_dom(stream, file_path) # Check schema schema_checker = SchemaChecker.SchemaChecker() schema_checker.check_schema(file_path, SERVER_XSD_FILE_PATH) server_node = LoaderUtilities.find_node(file_path, server_dom, 'server') # Load important nodes configuration_nodes = LoaderUtilities.find_nodes(file_path, server_node, 'configuration') server_type_node = LoaderUtilities.find_node(file_path, server_node, 'type') methods_node = LoaderUtilities.find_node(file_path, server_node, 'methods') implementation_node = LoaderUtilities.find_node(file_path, server_node, 'implementation') restrictions_nodes = LoaderUtilities.find_nodes(file_path, server_node, 'restriction') protocols_nodes = LoaderUtilities.find_node(file_path, server_node, 'protocols') # Parse nodes configurations = self._parse_configurations(directory, configuration_nodes) server_type = self._parse_server_type(server_type_node) server_type_module = self._parse_server_type_module(server_type_node) methods = self._parse_methods(methods_node) implementation = self._parse_implementation(implementation_node) restrictions = self._parse_restrictions(directory, restrictions_nodes) protocols = self._parse_protocols(file_path, protocols_nodes, address) # Return structure server_configuration = ConfigurationData.ServerConfiguration( None, configurations, server_type, server_type_module, methods, implementation, restrictions, protocols ) return server_configuration
def _parse_coordinations(self, file_path, protocol_node): coordinations_node = LoaderUtilities.find_node(file_path, protocol_node, 'coordinations') coordinations = [] coordination_nodes = LoaderUtilities.find_nodes(file_path, coordinations_node, 'coordination') for coordination_node in coordination_nodes: parameters = self._parse_parameters(file_path, coordination_node) coordination = ConfigurationData.CoordinationConfiguration(parameters) coordinations.append(coordination) coordinations_configuration = ConfigurationData.CoordinationsConfiguration( coordinations ) return coordinations_configuration
def test_find_node_too_many(self): sample = """<?xml version="1.0" encoding="utf-8"?> <server> <configuration/> <configuration/> </server> """ root_node = minidom.parse(StringIO.StringIO(sample)) server_node = LoaderUtilities.find_node('file_name',root_node,'server') self.assertRaises( LoaderErrors.InvalidSyntaxFileConfigurationError, LoaderUtilities.find_node, "file_name", server_node, "configuration" )