本文整理汇总了Python中collective.solr.manager.SolrConnectionManager类的典型用法代码示例。如果您正苦于以下问题:Python SolrConnectionManager类的具体用法?Python SolrConnectionManager怎么用?Python SolrConnectionManager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SolrConnectionManager类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testTwoRequests
def testTwoRequests(self):
mngr = SolrConnectionManager(active=True)
proc = SolrIndexProcessor(mngr)
output = fakehttp(mngr.getConnection(), getData('schema.xml'),
getData('add_response.txt'))
proc.index(self.foo)
mngr.closeConnection()
self.assertEqual(len(output), 2)
self.failUnless(output.get().startswith(self.schema_request))
self.assertEqual(sortFields(output.get()), getData('add_request.txt'))
示例2: testLocalConnections
def testLocalConnections(self):
config = getConfig()
config.atomic_updates = True
mngr = SolrConnectionManager(active=True)
proc = SolrIndexProcessor(mngr)
mngr.setHost(active=True)
schema = getData('schema.xml')
log = []
def runner():
# fake schema response on solr connection - caches the schema
fakehttp(mngr.getConnection(), getData('schema.xml'))
mngr.getConnection().get_schema()
fakehttp(mngr.getConnection(), schema) # fake schema response
# read and cache the schema
mngr.getSchema()
response = getData('add_response.txt')
# fake add response
output = fakehttp(mngr.getConnection(), response)
# indexing sends data
proc.index(Foo(id='500', name='python test doc'))
mngr.closeConnection()
log.append(str(output))
log.append(proc)
log.append(mngr.getConnection())
# after the runner was set up, another thread can be created and
# started; its output should contain the proper indexing request,
# whereas the main thread's connection remain idle; the latter
# cannot be checked directly, but the connection object would raise
# an exception if it was used to send a request without setting up
# a fake response beforehand...
thread = Thread(target=runner)
thread.start()
thread.join()
conn = mngr.getConnection() # get this thread's connection
fakehttp(conn, schema) # fake schema response
mngr.getSchema() # read and cache the schema
mngr.closeConnection()
mngr.setHost(active=False)
self.assertEqual(len(log), 3)
self.assertEqual(sortFields(log[0]), getData(
'add_request.txt').rstrip('\n'))
self.failUnless(isinstance(log[1], SolrIndexProcessor))
self.failUnless(isinstance(log[2], SolrConnection))
self.failUnless(isinstance(proc, SolrIndexProcessor))
self.failUnless(isinstance(conn, SolrConnection))
self.assertEqual(log[1], proc) # processors should be the same...
self.assertNotEqual(log[2], conn) # but not the connections
示例3: testExtraRequest
def testExtraRequest(self):
# basically the same as `testThreeRequests`, except it
# tests adding fake responses consecutively
mngr = SolrConnectionManager(active=True)
proc = SolrIndexProcessor(mngr)
conn = mngr.getConnection()
output = fakehttp(conn, getData('schema.xml'))
fakemore(conn, getData('add_response.txt'))
proc.index(self.foo)
fakemore(conn, getData('delete_response.txt'))
proc.unindex(self.foo)
mngr.closeConnection()
self.assertEqual(len(output), 3)
self.failUnless(output.get().startswith(self.schema_request))
self.assertEqual(sortFields(output.get()), getData('add_request.txt'))
self.assertEqual(output.get(), getData('delete_request.txt'))
示例4: setUp
def setUp(self):
provideUtility(SolrConnectionConfig(), ISolrConnectionConfig)
self.mngr = SolrConnectionManager()
self.mngr.setHost(active=True)
self.conn = self.mngr.getConnection()
self.search = Search()
self.search.manager = self.mngr
示例5: setUp
def setUp(self):
self.mngr = SolrConnectionManager()
self.mngr.setHost(active=True)
conn = self.mngr.getConnection()
fakehttp(conn, getData('schema.xml')) # fake schema response
self.mngr.getSchema() # read and cache the schema
self.search = Search()
self.search.manager = self.mngr
示例6: setUp
def setUp(self):
provideUtility(SolrConnectionConfig(), ISolrConnectionConfig)
self.mngr = SolrConnectionManager()
self.mngr.setHost(active=True)
conn = self.mngr.getConnection()
fakehttp(conn, getData('schema.xml')) # fake schema response
self.mngr.getSchema() # read and cache the schema
self.proc = SolrIndexProcessor(self.mngr)
示例7: SearchTests
class SearchTests(TestCase):
def setUp(self):
provideUtility(SolrConnectionConfig(), ISolrConnectionConfig)
self.mngr = SolrConnectionManager()
self.mngr.setHost(active=True)
self.conn = self.mngr.getConnection()
self.search = Search()
self.search.manager = self.mngr
def tearDown(self):
self.mngr.closeConnection()
self.mngr.setHost(active=False)
def testSimpleSearch(self):
schema = getData('schema.xml')
search = getData('search_response.txt')
request = getData('search_request.txt')
output = fakehttp(self.conn, schema, search) # fake responses
query = self.search.buildQuery(id='[* TO *]')
results = self.search(query, rows=10, wt='xml', indent='on').results()
normalize = lambda x: sorted(x.split('&')) # sort request params
self.assertEqual(normalize(output.get(skip=1)), normalize(request))
self.assertEqual(results.numFound, '1')
self.assertEqual(len(results), 1)
match = results[0]
self.assertEqual(match.id, '500')
self.assertEqual(match.name, 'python test doc')
self.assertEqual(match.popularity, 0)
self.assertEqual(match.sku, '500')
self.assertEqual(match.timestamp,
DateTime('2008-02-29 16:11:46.998 GMT'))
示例8: setUp
def setUp(self):
self.mngr = SolrConnectionManager()
self.mngr.setHost(active=True)
conn = self.mngr.getConnection()
fakehttp(conn, getData('schema.xml')) # fake schema response
self.mngr.getSchema() # read and cache the schema
self.proc = SolrIndexProcessor(self.mngr)
config = getConfig()
config.atomic_updates = True
示例9: setUp
def setUp(self):
provideUtility(SolrConnectionConfig(), ISolrConnectionConfig)
self.mngr = SolrConnectionManager()
self.mngr.setHost(active=True)
self.conn = self.mngr.getConnection()
self.proc = SolrIndexProcessor(self.mngr)
self.log = [] # catch log messages...
def logger(*args):
self.log.extend(args)
logger_indexer.warning = logger
示例10: setUp
def setUp(self):
provideUtility(SolrConnectionConfig(), ISolrConnectionConfig)
self.mngr = SolrConnectionManager()
self.mngr.setHost(active=True)
conn = self.mngr.getConnection()
fakehttp(conn, getData('plone_schema.xml')) # fake schema response
self.mngr.getSchema() # read and cache the schema
self.search = Search()
self.search.manager = self.mngr
# Patch buildQuery method
self.search.buildQuery = buildQuery.__get__(self.search,
self.search.__class__)
示例11: testSingleRequest
def testSingleRequest(self):
mngr = SolrConnectionManager(active=True)
output = fakehttp(mngr.getConnection(), getData('schema.xml'))
mngr.getSchema()
mngr.closeConnection()
self.failUnless(output.get().startswith(self.schema_request))
示例12: RobustnessTests
class RobustnessTests(TestCase):
def setUp(self):
provideUtility(SolrConnectionConfig(), ISolrConnectionConfig)
self.mngr = SolrConnectionManager()
self.mngr.setHost(active=True)
self.conn = self.mngr.getConnection()
self.proc = SolrIndexProcessor(self.mngr)
self.log = [] # catch log messages...
def logger(*args):
self.log.extend(args)
logger_indexer.warning = logger
def tearDown(self):
self.mngr.closeConnection()
self.mngr.setHost(active=False)
def testIndexingWithUniqueKeyMissing(self):
# fake schema response
fakehttp(self.conn, getData('simple_schema.xml'))
# read and cache the schema
self.mngr.getSchema()
response = getData('add_response.txt')
output = fakehttp(self.conn, response) # fake add response
foo = Foo(id='500', name='foo')
# indexing sends data
self.proc.index(foo)
# nothing happened...
self.assertEqual(len(output), 0)
self.assertEqual(self.log, [
'schema is missing unique key, skipping indexing of %r', foo])
def testUnindexingWithUniqueKeyMissing(self):
# fake schema response
fakehttp(self.conn, getData('simple_schema.xml'))
# read and cache the schema
self.mngr.getSchema()
response = getData('delete_response.txt')
# fake delete response
output = fakehttp(self.conn, response)
foo = Foo(id='500', name='foo')
# unindexing sends data
self.proc.unindex(foo)
# nothing happened...
self.assertEqual(len(output), 0)
self.assertEqual(self.log, [
'schema is missing unique key, skipping unindexing of %r', foo])
示例13: QueryTests
class QueryTests(TestCase):
def setUp(self):
provideUtility(SolrConnectionConfig(), ISolrConnectionConfig)
self.mngr = SolrConnectionManager()
self.mngr.setHost(active=True)
conn = self.mngr.getConnection()
fakehttp(conn, getData('schema.xml')) # fake schema response
self.mngr.getSchema() # read and cache the schema
self.search = Search()
self.search.manager = self.mngr
def tearDown(self):
self.mngr.closeConnection()
self.mngr.setHost(active=False)
def bq(self, *args, **kw):
query = self.search.buildQuery(*args, **kw)
return ' '.join(sorted(query.values()))
def testSimpleQueries(self):
bq = self.bq
self.assertEqual(bq('foo'), '+foo')
self.assertEqual(bq('foo*'), '+foo*')
self.assertEqual(bq('foo!'), '+foo\\!')
self.assertEqual(bq('(foo)'), '+foo')
self.assertEqual(bq('(foo...'), '+foo...')
self.assertEqual(bq('foo bar'), '+(foo bar)')
self.assertEqual(bq('[email protected]'), '[email protected]')
self.assertEqual(bq(name='foo'), '+name:foo')
self.assertEqual(bq(name='foo*'), '+name:foo*')
self.assertEqual(bq(name='foo bar'), '+name:(foo bar)')
self.assertEqual(bq(name='[email protected]'), '+name:[email protected]')
self.assertEqual(bq(name=' '), '') # Whitespace is removed
self.assertEqual(bq(name=''), '')
def testMultiValueQueries(self):
bq = self.bq
self.assertEqual(bq(('foo', 'bar')), '+(foo OR bar)')
self.assertEqual(bq(('foo', 'bar*')), '+(foo OR bar*)')
self.assertEqual(bq(('foo bar', 'hmm')), '+("foo bar" OR hmm)')
self.assertEqual(bq(('foø bar', 'hmm')), '+("fo\xc3\xb8 bar" OR hmm)')
self.assertEqual(bq(('"foo bar"', 'hmm')), '+("foo bar" OR hmm)')
self.assertEqual(bq(name=['foo', 'bar']), '+name:(foo OR bar)')
self.assertEqual(bq(name=['foo', 'bar*']), '+name:(foo OR bar*)')
self.assertEqual(bq(name=['foo bar', 'hmm']), '+name:("foo bar" OR hmm)')
def testMultiArgumentQueries(self):
bq = self.bq
self.assertEqual(bq('foo', name='bar'), '+foo +name:bar')
self.assertEqual(bq('foo', name=('bar', 'hmm')),
'+foo +name:(bar OR hmm)')
self.assertEqual(bq('foo', name=('foo bar', 'hmm')),
'+foo +name:("foo bar" OR hmm)')
self.assertEqual(bq(name='foo', cat='bar'), '+cat:bar +name:foo')
self.assertEqual(bq(name='foo', cat=['bar', 'hmm']),
'+cat:(bar OR hmm) +name:foo')
self.assertEqual(bq(name='foo', cat=['foo bar', 'hmm']),
'+cat:("foo bar" OR hmm) +name:foo')
self.assertEqual(bq('foo', name=' '), '+foo')
# empty value for a name should return no results like in ZCatalog, so
# empty query is returned
self.assertEqual(bq('foo', name=''), '')
def testInvalidArguments(self):
bq = self.bq
self.assertEqual(bq(title='foo'), '')
self.assertEqual(bq(title='foo', name='bar'), '+name:bar')
self.assertEqual(bq('bar', title='foo'), '+bar')
def testUnicodeArguments(self):
bq = self.bq
self.assertEqual(bq(u'foo'), '+foo')
self.assertEqual(bq(u'foø'), '+fo\xc3\xb8')
self.assertEqual(bq(u'[email protected]'), '[email protected]')
self.assertEqual(bq(name=['foo', u'bar']), '+name:(foo OR bar)')
self.assertEqual(bq(name=['foo', u'bär']), '+name:(foo OR b\xc3\xa4r)')
self.assertEqual(bq(name='foo', cat=(u'bar', 'hmm')), '+cat:(bar OR hmm) +name:foo')
self.assertEqual(bq(name='foo', cat=(u'bär', 'hmm')), '+cat:(b\xc3\xa4r OR hmm) +name:foo')
self.assertEqual(bq(name=u'[email protected]', cat='spammer'), '+cat:spammer +name:[email protected]')
def testQuotedQueries(self):
bq = self.bq
self.assertEqual(bq('"foo"'), '+"foo"')
self.assertEqual(bq('foo'), '+foo')
self.assertEqual(bq('"foo*"'), '+"foo\*"')
self.assertEqual(bq('foo*'), '+foo*')
self.assertEqual(bq('"+foo"'), '+"\+foo"')
self.assertEqual(bq('+foo'), '+foo')
self.assertEqual(bq('"foo bar"'), '+"foo bar"')
self.assertEqual(bq('foo bar'), '+(foo bar)')
self.assertEqual(bq('"foo bar?"'), '+"foo bar\?"')
self.assertEqual(bq('foo bar?'), '+(foo bar?)')
self.assertEqual(bq('-foo +bar'), '+(-foo +bar)')
self.assertEqual(bq('"-foo +bar"'), '+"\-foo \+bar"')
self.assertEqual(bq('foo-bar'), '+"foo\\-bar"')
self.assertEqual(bq('"foo-bar"'), '+"foo\-bar"')
self.assertEqual(bq(name='"foo"'), '+name:"foo"')
self.assertEqual(bq(name='"foo bar'), '+name:(\\"foo bar)')
#.........这里部分代码省略.........
示例14: QueueIndexerTests
class QueueIndexerTests(TestCase):
def setUp(self):
provideUtility(SolrConnectionConfig(), ISolrConnectionConfig)
self.mngr = SolrConnectionManager()
self.mngr.setHost(active=True)
conn = self.mngr.getConnection()
fakehttp(conn, getData('schema.xml')) # fake schema response
self.mngr.getSchema() # read and cache the schema
self.proc = SolrIndexProcessor(self.mngr)
def tearDown(self):
self.mngr.closeConnection()
self.mngr.setHost(active=False)
def testPrepareData(self):
data = {'allowedRolesAndUsers': [
'user:test_user_1_', 'user:portal_owner']}
prepareData(data)
self.assertEqual(
data,
{
'allowedRolesAndUsers': [
'user$test_user_1_',
'user$portal_owner'
]
}
)
def testLanguageParameterHandling(self):
# empty strings are replaced...
data = {'Language': ['en', '']}
prepareData(data)
self.assertEqual(data, {'Language': ['en', 'any']})
data = {'Language': ''}
prepareData(data)
self.assertEqual(data, {'Language': 'any'})
# for other indices this shouldn't happen...
data = {'Foo': ['en', '']}
prepareData(data)
self.assertEqual(data, {'Foo': ['en', '']})
def testIndexObject(self):
response = getData('add_response.txt')
# fake add response
output = fakehttp(self.mngr.getConnection(), response)
# indexing sends data
self.proc.index(Foo(id='500', name='python test doc'))
self.assertEqual(sortFields(str(output)), getData('add_request.txt'))
def testIndexAccessorRaises(self):
response = getData('add_response.txt')
# fake add response
output = fakehttp(self.mngr.getConnection(), response)
def brokenfunc():
raise ValueError
self.proc.index(Foo(id='500', name='python test doc',
text=brokenfunc)) # indexing sends data
self.assertEqual(sortFields(str(output)), getData('add_request.txt'))
def testPartialIndexObject(self):
foo = Foo(id='500', name='foo', price=42.0)
# first index all attributes...
response = getData('add_response.txt')
output = fakehttp(self.mngr.getConnection(), response)
self.proc.index(foo)
self.assert_(str(output).find(
'<field name="price">42.0</field>') > 0, '"price" data not found')
# then only a subset...
response = getData('add_response.txt')
output = fakehttp(self.mngr.getConnection(), response)
self.proc.index(foo, attributes=['id', 'name'])
output = str(output)
self.assert_(
output.find('<field name="name">foo</field>') > 0,
'"name" data not found'
)
# at this point we'd normally check for a partial update:
# self.assertEqual(output.find('price'), -1, '"price" data found?')
# self.assertEqual(output.find('42'), -1, '"price" data found?')
# however, until SOLR-139 has been implemented (re)index operations
# always need to provide data for all attributes in the schema...
self.assert_(
output.find('<field name="price">42.0</field>') > 0,
'"price" data not found'
)
def testDateIndexing(self):
foo = Foo(id='zeidler', name='andi', cat='nerd',
timestamp=DateTime('May 11 1972 03:45 GMT'))
response = getData('add_response.txt')
# fake add response
output = fakehttp(self.mngr.getConnection(), response)
self.proc.index(foo)
required = '<field name="timestamp">1972-05-11T03:45:00.000Z</field>'
self.assert_(str(output).find(required) > 0, '"date" data not found')
def testDateIndexingWithPythonDateTime(self):
foo = Foo(id='gerken', name='patrick', cat='nerd',
#.........这里部分代码省略.........