def get_object(self, session, id): """Return the object with the given id. Searches first within this object's scope, or search upwards for it. """ if (id in self.objects): return self.objects[id] else: config = self.get_config(session, id) if config is not None: try: obj = dynamic.makeObjectFromDom(session, config, self) except (ConfigFileException, AttributeError, ImportError): # Push back up as is self.log_critical(session, "... while trying to build object with " "id '%s'" % id) self.log_critical(session, "... while getting it from object " "'%s'" % (self.id)) raise return obj elif (self.parent is not None): return self.parent.get_object(session, id) else: raise ObjectDoesNotExistException(id)
def test_makeObjectFromDom(self): "Check processing objects can be created from a parsed configs." for objectType in self._get_objectTypes(): if "Store" in objectType: # Don't build Stores - creates empty BDB files continue config = self._get_configFromObjectType(objectType) try: obj = makeObjectFromDom(self.session, config, self.server) except Exception as e: self.assertIsInstance(e, (ConfigFileException, NotImplementedError, MissingDependencyException), "When failing to makeObjectFromDom for " "type '{0}' {1} is raised. Should be " "one of: ConfigFileException, " "NotImplementedError, " "MissingDependencyException" "".format(objectType, e.__class__.__name__) ) else: modName = objectType.split('.')[1] expCls = getattr(baseObjects, modName[0].upper() + modName[1:]) self.assertIsInstance(obj, expCls)
def setUp(self): self.session = Session() serverConfig = os.path.join(cheshire3Root, 'configs', 'serverConfig.xml') self.server = SimpleServer(self.session, serverConfig) for config in self._get_dependencyConfigs(): identifier = config.get('id') self.server.subConfigs[identifier] = config # Disable stdout logging lgr = self.server.get_path(self.session, 'defaultLogger') lgr.minLevel = 60 # Create object that will be tested config = self._get_config() self.testObj = makeObjectFromDom(self.session, config, self.server)
def _processRecord(self, session, id, rec): # Split from fetch_object for Iterators dom = rec.get_dom(session) if hasattr(dom, "childNodes"): for d in dom.childNodes: if d.nodeType == elementType: topNode = d break else: # LXML topNode = dom object = dynamic.makeObjectFromDom(session, topNode, self) return object
def _processRecord(self, session, id, rec): # Split from fetch_object for Iterators dom = rec.get_dom(session) if (hasattr(dom, 'childNodes')): for d in dom.childNodes: if d.nodeType == elementType: topNode = d break else: # LXML topNode = dom object = dynamic.makeObjectFromDom(session, topNode, self) return object
def setUp(self): self.session = Session() serverConfig = os.path.join(cheshire3Root, 'configs', 'serverConfig.xml') self.server = SimpleServer(self.session, serverConfig) for config in self._get_dependencyConfigs(): identifier = config.get('id') self.server.subConfigs[identifier] = config # Disable stdout logging lgr = self.server.get_path(self.session, 'defaultLogger') lgr.minLevel = 60 # Create object that will be tested config = self._get_config() self.testObj = makeObjectFromDom(self.session, config, self.server)
def test_makeObjectFromDom(self): "Check processing objects can be created from a parsed configs." for objectType in self._get_objectTypes(): if "Store" in objectType: # Don't build Stores - creates empty BDB files continue config = self._get_configFromObjectType(objectType) try: obj = makeObjectFromDom(self.session, config, self.server) except Exception as e: self.assertIsInstance( e, (ConfigFileException, NotImplementedError, MissingDependencyException), "When failing to makeObjectFromDom for " "type '{0}' {1} is raised. Should be " "one of: ConfigFileException, " "NotImplementedError, " "MissingDependencyException" "".format(objectType, e.__class__.__name__)) else: modName = objectType.split('.')[1] expCls = getattr(baseObjects, modName[0].upper() + modName[1:]) self.assertIsInstance(obj, expCls)