class Cheshire3ObjectTestCase(unittest.TestCase): u"""Abstract Base Class for Cheshire3 Test Cases. Almost all objects in Cheshire3 require a Session, and a server as its parent, so create these now. """ @classmethod def _get_class(cls): # Return class of object to test return C3Object def _get_config(self): # Return a parsed config for the object to be tested return etree.XML(''' <subConfig id="{0.__name__}"> <objectType>{0.__module__}.{0.__name__}</objectType> </subConfig> '''.format(self._get_class())) def _get_dependencyConfigs(self): # Generator of configs for objects on which this object depends # e.g. an Index may depends on and IndexStore for storage, and # Selectors, Extractors etc. return yield 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 tearDown(self): pass def test_serverInstance(self): "Check test case's Session instance." self.assertIsInstance(self.server, SimpleServer) def test_instance(self): "Check that C3Object is an instance of the expected class." self.assertIsInstance(self.testObj, self._get_class())
class Cheshire3ObjectTestCase(unittest.TestCase): u"""Abstract Base Class for Cheshire3 Test Cases. Almost all objects in Cheshire3 require a Session, and a server as its parent, so create these now. """ @classmethod def _get_class(cls): # Return class of object to test return C3Object def _get_config(self): # Return a parsed config for the object to be tested return etree.XML(''' <subConfig id="{0.__name__}"> <objectType>{0.__module__}.{0.__name__}</objectType> </subConfig> '''.format(self._get_class())) def _get_dependencyConfigs(self): # Generator of configs for objects on which this object depends # e.g. an Index may depends on and IndexStore for storage, and # Selectors, Extractors etc. return yield 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 tearDown(self): pass def test_serverInstance(self): "Check test case's Session instance." self.assertIsInstance(self.server, SimpleServer) def test_instance(self): "Check that C3Object is an instance of the expected class." self.assertIsInstance(self.testObj, self._get_class())
session.environment = "apache" server = SimpleServer( session, os.path.join(cheshirePath, 'cheshire3', 'configs', 'serverConfig.xml')) configs = {} dbmap = {} server._cacheDatabases(session) for db in server.databases.values(): if db.get_setting(session, "z3950"): db._cacheProtocolMaps(session) map1 = db.protocolMaps.get('http://www.loc.gov/z3950/', None) if map1: configs[map1.databaseName] = map1 dbmap[db.id] = map1.databaseName session.resultSetStore = server.get_path(session, 'resultSetStore') session.logger = server.get_path(session, 'z3950Logger') session.configs = configs class ZHandler: connection = None session = None handlers = {} debug = 1 decode_ctx = None encode_ctx = None def __init__(self): self.session = session
class DynamicTestCase(unittest.TestCase): """Base Class for cheshire3.dynamic test cases.""" def _get_objectTypes(self): return [ 'cheshire3.database.SimpleDatabase', 'cheshire3.database.OptimisingDatabase', 'cheshire3.documentFactory.SimpleDocumentFactory', 'cheshire3.documentFactory.ComponentDocumentFactory', 'cheshire3.documentStore.SimpleDocumentStore', 'cheshire3.extractor.SimpleExtractor', 'cheshire3.index.SimpleIndex', 'cheshire3.index.ProximityIndex', 'cheshire3.index.RangeIndex', 'cheshire3.index.BitmapIndex', 'cheshire3.indexStore.BdbIndexStore', 'cheshire3.logger.SimpleLogger', 'cheshire3.logger.FunctionLogger', 'cheshire3.logger.LoggingLogger', 'cheshire3.logger.DateTimeFileLogger', 'cheshire3.logger.MultipleLogger', 'cheshire3.normalizer.SimpleNormalizer', 'cheshire3.normalizer.CaseNormalizer', 'cheshire3.normalizer.SpaceNormalizer', 'cheshire3.normalizer.RangeNormalizer', 'cheshire3.objectStore.BdbObjectStore', 'cheshire3.parser.MinidomParser', 'cheshire3.parser.SaxParser', 'cheshire3.parser.LxmlParser', 'cheshire3.parser.LxmlHtmlParser', 'cheshire3.parser.MarcParser', 'cheshire3.preParser.UnicodeDecodePreParser', 'cheshire3.preParser.HtmlTidyPreParser', 'cheshire3.preParser.SgmlPreParser', 'cheshire3.preParser.CharacterEntityPreParser', 'cheshire3.queryFactory.SimpleQueryFactory', 'cheshire3.queryStore.SimpleQueryStore', 'cheshire3.recordStore.BdbRecordStore', 'cheshire3.resultSetStore.BdbResultSetStore', 'cheshire3.selector.XPathSelector', 'cheshire3.selector.SpanXPathSelector', 'cheshire3.selector.MetadataSelector', 'cheshire3.tokenizer.RegexpSubTokenizer', 'cheshire3.tokenizer.SentenceTokenizer', 'cheshire3.tokenizer.DateTokenizer', 'cheshire3.tokenizer.PythonTokenizer', 'cheshire3.tokenMerger.SimpleTokenMerger', 'cheshire3.tokenMerger.ProximityTokenMerger', 'cheshire3.tokenMerger.RangeTokenMerger', 'cheshire3.tokenMerger.NGramTokenMerger', 'cheshire3.transformer.XmlTransformer', 'cheshire3.transformer.LxmlXsltTransformer', 'cheshire3.transformer.MarcTransformer', 'cheshire3.workflow.SimpleWorkflow', 'cheshire3.workflow.CachingWorkflow' ] def _get_configFromObjectType(self, objectType): return etree.XML('''\ <subConfig id="{0}"> <objectType>{0}</objectType> </subConfig>'''.format(objectType)) def setUp(self): self.session = baseObjects.Session() serverConfig = os.path.join(cheshire3Root, 'configs', 'serverConfig.xml') self.server = SimpleServer(self.session, serverConfig) # Disable stdout logging lgr = self.server.get_path(self.session, 'defaultLogger') lgr.minLevel = 60
class DynamicTestCase(unittest.TestCase): """Base Class for cheshire3.dynamic test cases.""" def _get_objectTypes(self): return ['cheshire3.database.SimpleDatabase', 'cheshire3.database.OptimisingDatabase', 'cheshire3.documentFactory.SimpleDocumentFactory', 'cheshire3.documentFactory.ComponentDocumentFactory', 'cheshire3.documentStore.SimpleDocumentStore', 'cheshire3.extractor.SimpleExtractor', 'cheshire3.index.SimpleIndex', 'cheshire3.index.ProximityIndex', 'cheshire3.index.RangeIndex', 'cheshire3.index.BitmapIndex', 'cheshire3.indexStore.BdbIndexStore', 'cheshire3.logger.SimpleLogger', 'cheshire3.logger.FunctionLogger', 'cheshire3.logger.LoggingLogger', 'cheshire3.logger.DateTimeFileLogger', 'cheshire3.logger.MultipleLogger', 'cheshire3.normalizer.SimpleNormalizer', 'cheshire3.normalizer.CaseNormalizer', 'cheshire3.normalizer.SpaceNormalizer', 'cheshire3.normalizer.RangeNormalizer', 'cheshire3.objectStore.BdbObjectStore', 'cheshire3.parser.MinidomParser', 'cheshire3.parser.SaxParser', 'cheshire3.parser.LxmlParser', 'cheshire3.parser.LxmlHtmlParser', 'cheshire3.parser.MarcParser', 'cheshire3.preParser.UnicodeDecodePreParser', 'cheshire3.preParser.HtmlTidyPreParser', 'cheshire3.preParser.SgmlPreParser', 'cheshire3.preParser.CharacterEntityPreParser', 'cheshire3.queryFactory.SimpleQueryFactory', 'cheshire3.queryStore.SimpleQueryStore', 'cheshire3.recordStore.BdbRecordStore', 'cheshire3.resultSetStore.BdbResultSetStore', 'cheshire3.selector.XPathSelector', 'cheshire3.selector.SpanXPathSelector', 'cheshire3.selector.MetadataSelector', 'cheshire3.tokenizer.RegexpSubTokenizer', 'cheshire3.tokenizer.SentenceTokenizer', 'cheshire3.tokenizer.DateTokenizer', 'cheshire3.tokenizer.PythonTokenizer', 'cheshire3.tokenMerger.SimpleTokenMerger', 'cheshire3.tokenMerger.ProximityTokenMerger', 'cheshire3.tokenMerger.RangeTokenMerger', 'cheshire3.tokenMerger.NGramTokenMerger', 'cheshire3.transformer.XmlTransformer', 'cheshire3.transformer.LxmlXsltTransformer', 'cheshire3.transformer.MarcTransformer', 'cheshire3.workflow.SimpleWorkflow', 'cheshire3.workflow.CachingWorkflow'] def _get_configFromObjectType(self, objectType): return etree.XML('''\ <subConfig id="{0}"> <objectType>{0}</objectType> </subConfig>'''.format(objectType)) def setUp(self): self.session = baseObjects.Session() serverConfig = os.path.join(cheshire3Root, 'configs', 'serverConfig.xml') self.server = SimpleServer(self.session, serverConfig) # Disable stdout logging lgr = self.server.get_path(self.session, 'defaultLogger') lgr.minLevel = 60
session = Session() session.environment = "apache" server = SimpleServer(session, os.path.join(internal.cheshire3Root, 'configs', 'serverConfig.xml')) configs = {} dbmap = {} server._cacheDatabases(session) for db in server.databases.values(): if db.get_setting(session, "z3950"): db._cacheProtocolMaps(session) map1 = db.protocolMaps.get('http://www.loc.gov/z3950/', None) if map1: configs[map1.databaseName] = map1 dbmap[db.id] = map1.databaseName session.resultSetStore = server.get_path(session, 'resultSetStore') session.logger = server.get_path(session, 'z3950Logger') session.configs = configs class ZHandler: connection = None session = None handlers = {} debug = 1 decode_ctx = None encode_ctx = None def __init__(self): self.session = session self.decode_ctx = asn1.IncrementalDecodeCtx(APDU)
#!/usr/bin/python import sys import os from cheshire3.baseObjects import Session from cheshire3.server import SimpleServer from cheshire3.internal import cheshire3Root # Build environment... session = Session() # a Session - used to store print cheshire3Root serv = SimpleServer(session, os.path.join(cheshire3Root, 'configs', 'serverConfig.xml')) session.logger = serv.get_path(session, 'defaultLogger') # a logger db = serv.get_object(session, 'db_tdo_index') # the Database session.database = db.id #qf = db.get_object(session, 'defaultQueryFactory') def testVec(): recordStore = db.get_object(session, 'recordStore') rec = recordStore.fetch_record(session, 1) idx= db.get_object(session, 'idx-topic') vec = idx.fetch_vector(session, rec)