class ClientTestCase(AsyncTestCase): def setUp(self): super(ClientTestCase, self).setUp() self.client = SolrClient() def test_mk_req(self): self.assertEquals(self.client.base_url, self.client.mk_req('').url) self.assertEquals('GET', self.client.mk_req('').method) def test_mk_url(self): url = self.client.mk_url(*['a','b','c'], **{'key':'value'}) self.assertEquals('/a/b/c?key=value', url) @gen_test(timeout=30) def test_create_collection(self): p = partial(self.client.create_collection, 'fox', **{'collection_kwargs':{'numShards':1}}) res = yield gen.Task(p) eq_(200, res.code) p = partial(self.client.delete_collection, 'fox') yield gen.Task(p) @gen_test(timeout=30) def test_core_status(self): res = yield gen.Task(partial(self.client.core_status)) ok_(json.loads(res.body.decode('utf8'))) eq_(200, res.code) @gen_test(timeout=30) def test_core_create(self): yield gen.Task(partial(self.client.core_unload, 'test_core')) res = yield gen.Task(partial(self.client.core_create, 'test_core')) ok_(json.loads(res.body.decode('utf8'))) eq_(200, res.code) yield gen.Task(partial(self.client.core_unload, 'test_core')) yield gen.Task(partial(self.client.core_reload, 'test_core')) @gen_test(timeout=30) def test_core_reload(self): yield gen.Task(partial(self.client.core_create, 't')) res = yield gen.Task(partial(self.client.core_reload, 't')) ok_(json.loads(res.body.decode('utf8'))) eq_(200, res.code) unload = yield gen.Task(partial(self.client.core_unload, 't')) eq_(200, unload.code) yield gen.Task(partial(self.client.core_reload, 't')) #@gen_test(timeout=25) #def test_core_rename(self): # yield gen.Task(partial(self.client.core_create, 'baz')) # yield gen.Task(partial(self.client.core_reload, 'baz')) # res = yield gen.Task(partial(self.client.core_rename, 'baz', 'qux')) # eq_(200, res.code) # yield gen.Task(partial(self.client.core_reload, 'baz')) # yield gen.Task(partial(self.client.core_reload, 'qux')) # yield gen.Task(partial(self.client.core_unload, 'qux')) # yield gen.Task(partial(self.client.core_reload, 'qux')) @gen_test(timeout=30) def test_add_json_document(self): d = {"id":"123", "title":"test_add"} yield gen.Task(partial(self.client.core_create, 'add_j')) yield gen.Task(partial(self.client.core_reload, 'add_j')) res = yield gen.Task(partial(self.client.add_json_document, 'add_j', d)) ok_(json.loads(res.body.decode('utf8'))) eq_(200, res.code) @gen_test(timeout=30) def test_add_json_documents(self): d = [ {"id":"123", "title":"test_add"}, {"id":"456", "title":"bar_baz"}, ] yield gen.Task(partial(self.client.core_create, 'add_docs')) yield gen.Task(partial(self.client.core_reload, 'add_docs')) res = yield gen.Task(partial(self.client.add_json_document, 'add_docs', d)) eq_(200, res.code) @gen_test(timeout=30) def test_query(self): d = [ {"id":"123", "title":"test_add"}, {"id":"456", "title":"bar_baz"}, ] yield gen.Task(partial(self.client.core_create, 'add_docs')) yield gen.Task(partial(self.client.core_reload, 'add_docs')) yield gen.Task(partial(self.client.add_json_document, 'add_docs', d)) q = {'q':'bar_baz'} res = yield gen.Task(partial(self.client.query, 'add_docs', q)) eq_(200, res.code) @gen_test(timeout=30) def test_delete(self): yield gen.Task(partial(self.client.delete_collection, 'qux')) yield gen.Task(partial(self.client.create_collection, 'qux')) d = [ {"id":"123", "title":"test_add"}, {"id":"456", "title":"bar_baz"}, ] yield gen.Task(partial(self.client.add_json_document, 'add_docs', d)) res = yield gen.Task(partial(self.client.delete, 'qux', ['123'])) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'qux')) @gen_test(timeout=30) def test_create_collection(self): yield gen.Task(partial(self.client.delete_collection, 'qux')) res = yield gen.Task(partial(self.client.create_collection, 'qux')) eq_(200, res.code) @gen_test(timeout=30) def test_delete_collection(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial(self.client.delete_collection, 'bix')) eq_(200, res.code) @gen_test(timeout=30) def test_reload_collection(self): yield gen.Task(partial(self.client.create_collection, 'qux')) res = yield gen.Task(partial(self.client.reload_collection, 'qux')) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'qux')) @gen_test(timeout=30) def test_alias_collection(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial(self.client.alias_collection, ['bix'], 'quix')) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_delete_alias_collection(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) yield gen.Task(partial(self.client.alias_collection, ['bix'], 'quix')) res = yield gen.Task(partial(self.client.delete_alias_collection, 'quix')) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_add_field(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial(self.client.add_field, 'bix', 'stamp', 'tdate')) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_delete_field(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) yield gen.Task(partial(self.client.add_field, 'bix', 'stamp', 'tdate')) res = yield gen.Task(partial(self.client.delete_field, 'bix', 'stamp')) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_replace_field(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) yield gen.Task(partial(self.client.add_field, 'bix', 'stamp', 'tdate')) res = yield gen.Task(partial( self.client.replace_field, 'bix', 'stamp', field_kwargs = {'type':'date'} )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_add_dynamic_field(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task( partial(self.client.add_dynamic_field, 'bix', '*_s', 'string') ) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_replace_field_type(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) yield gen.Task(partial(self.client.add_field, 'bix', 'stamp', 'tdate')) res = yield gen.Task(partial( self.client.replace_field_type, 'bix', 'stamp', field_kwargs = {'type':'date'} )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_add_copy_field(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) yield gen.Task(partial(self.client.add_field, 'bix', 'stamp', 'tdate')) res = yield gen.Task(partial( self.client.add_copy_field, 'bix', 'stamp', 'Stamp', )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_delete_copy_field(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) yield gen.Task(partial(self.client.add_field, 'bix', 'stamp', 'tdate')) yield gen.Task(partial( self.client.add_copy_field, 'bix', 'stamp', 'Stamp', )) res = yield gen.Task(partial( self.client.delete_copy_field, 'bix', 'stamp', 'Stamp', )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_schema(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial( self.client.schema, 'bix' )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_schema_fields(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial( self.client.schema_fields, 'bix' )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_schema_dynamic_fields(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial( self.client.schema_dynamic_fields, 'bix' )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_schema_field_types(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial( self.client.schema_field_types, 'bix' )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_schema_copy_fields(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial( self.client.schema_copy_fields, 'bix' )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_schema_name(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial( self.client.schema_name, 'bix' )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_schema_version(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial( self.client.schema_version, 'bix' )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_schema_unique_key(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial( self.client.schema_unique_key, 'bix' )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_schema_similarity(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial( self.client.schema_similarity, 'bix' )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix')) @gen_test(timeout=30) def test_schema_default_operator(self): yield gen.Task(partial(self.client.delete_collection, 'bix')) yield gen.Task(partial(self.client.create_collection, 'bix')) res = yield gen.Task(partial( self.client.schema_default_operator, 'bix' )) eq_(200, res.code) yield gen.Task(partial(self.client.delete_collection, 'bix'))
def setUp(self): super(ClientTestCase, self).setUp() self.client = SolrClient()
from solnado import SolrClient from tornado import ioloop c = SolrClient() def cb(reply): print reply.body ioloop.IOLoop.instance().stop() c.core_status(callback=cb) ioloop.IOLoop.instance().start()