class ConnectionSetTest(CouchbaseTestCase): def setUp(self): super(ConnectionSetTest, self).setUp() self.cb = Connection(self.host, self.port, self.username, self.password, self.bucket_prefix) def test_trivial_set(self): cas = self.cb.set('key_trivial1', 'value1') self.assertTrue(cas > 0) cas = self.cb.set('key_trivial2', 'value2') self.assertTrue(cas > 0) def test_set_with_cas(self): cas1 = self.cb.set('key_cas', 'value1') self.assertTrue(cas1 > 0) self.assertRaises(KeyExistsError, self.cb.set, 'key_cas', 'value2', cas=cas1+1) cas2 = self.cb.set('key_cas', 'value3', cas=cas1) self.assertTrue(cas2 > 0) self.assertNotEqual(cas2, cas1) cas3 = self.cb.set('key_cas', 'value4') self.assertTrue(cas3 > 0) self.assertNotEqual(cas3, cas2) self.assertNotEqual(cas3, cas1)
def test_connection_errors(self): cb = Connection(username='******', password='******', bucket='meh', host='localhost', port=1, _no_connect_exceptions=True) errors = cb.errors() self.assertTrue(len(errors)) self.assertEqual(len(errors[0]), 2) cb = Connection(**self.make_connargs()) self.assertFalse(len(cb.errors()))
def test_quiet(self): connparams = self.make_connargs() cb = Connection(**connparams) self.assertRaises(NotFoundError, cb.get, 'missing_key') cb = Connection(quiet=True, **connparams) cb.delete('missing_key', quiet=True) val1 = cb.get('missing_key') self.assertFalse(val1.success) cb = Connection(quiet=False, **connparams) self.assertRaises(NotFoundError, cb.get, 'missing_key')
def test_connection_host_port(self): cb = Connection(host=self.host, port=self.port, username=self.username, password=self.password, bucket=self.bucket_prefix) # Connection didn't throw an error self.assertIsInstance(cb, Connection)
def test_sasl_bucket(self): self.skipUnlessSasl() connargs = self.make_connargs() sasl_params = self.get_sasl_params() del connargs['username'] connargs['bucket'] = sasl_params['bucket'] connargs['password'] = sasl_params['password'] cb = Connection(**connargs) self.assertIsInstance(cb, Connection)
def test_multi_hosts(self): kwargs = { 'username': self.username, 'password': self.password, 'bucket': self.bucket_prefix } cb = Connection(host=[self.host], **kwargs) self.assertTrue(cb.set("foo", "bar").success) cb = Connection(host=[(self.host, self.port)], **kwargs) self.assertTrue(cb.set("foo", "bar").success) cb = Connection(host=[('localhost', 1), (self.host, self.port)], **kwargs) self.assertTrue(cb.set("foo", "bar").success)
def __init__(self): self.delay = options.delay self.key = 'K' * options.ksize self.value = b'V' * options.vsize self.wait_time = 0 self.opcount = 0 self.cb = Connection(bucket='default', host=options.hostname, unlock_gil=DO_UNLOCK_GIL) if options.transcoder: self.cb.transcoder = TC self.end_time = time() + options.duration super(Worker, self).__init__()
def test_conncache(self): cachefile = None # On Windows, the NamedTemporaryFile is deleted right when it's # created. So we need to ensure it's not deleted, and delete it # ourselves when it's closed try: cachefile = tempfile.NamedTemporaryFile(delete=False) cb = Connection(conncache=cachefile.name, **self.make_connargs()) self.assertTrue(cb.set("foo", "bar").success) cb2 = Connection(conncache=cachefile.name, **self.make_connargs()) self.assertTrue(cb2.set("foo", "bar").success) self.assertEquals("bar", cb.get("foo").value) sb = os.stat(cachefile.name) # For some reason this fails on Windows? self.assertTrue(sb.st_size > 0) finally: # On windows, we can't delete if the file is still being used cachefile.close() os.unlink(cachefile.name)
def test_connection_defaults(self): ctor_params = self.make_connargs() # XXX: Change these if any of the defaults change defaults = { 'timeout': 2.5, 'quiet': False, 'default_format': FMT_JSON, 'unlock_gil': True, 'transcoder': None } cb_ctor = Connection(**ctor_params) cb_connect = Couchbase.connect(**ctor_params) for option, value in defaults.items(): actual = getattr(cb_ctor, option) self.assertEqual(actual, value) actual = getattr(cb_connect, option) self.assertEqual(actual, value)
def test_multi_hosts(self): kwargs = { 'username' : self.username, 'password' : self.password, 'bucket' : self.bucket_prefix } cb = Connection(host=[self.host], **kwargs) self.assertTrue(cb.set("foo", "bar").success) cb = Connection(host=[(self.host, self.port)], **kwargs) self.assertTrue(cb.set("foo", "bar").success) cb = Connection(host=[('localhost', 1), (self.host, self.port)], **kwargs) self.assertTrue(cb.set("foo", "bar").success)
def test_bucket(self): cb = Connection(**self.make_connargs()) self.assertIsInstance(cb, Connection)
def test_lcb_version(self): verstr, vernum = Connection.lcb_version() self.assertIsInstance(verstr, str) self.assertIsInstance(vernum, int)
import pprint from couchbase.libcouchbase import Connection ap = ArgumentParser() ap.add_argument('-D', '--create-design', default=False, action='store_true', help='whether to create the design') ap.add_argument('-n', '--number-of-terms', default=10, type=int, help="How many terms to generate") options = ap.parse_args() c = Connection(bucket='default') DESIGN = { '_id' : '_design/search_keywords', 'language' : 'javascript', 'views' : { 'top_keywords' : { 'map' : """ function(doc) { if (typeof doc === 'number') { emit(doc, null); } } """ }
ap.add_argument('-D', '--create-design', default=False, action='store_true', help='whether to create the design') ap.add_argument('-n', '--number-of-terms', default=10, type=int, help="How many terms to generate") options = ap.parse_args() c = Connection(bucket='default') DESIGN = { '_id': '_design/search_keywords', 'language': 'javascript', 'views': { 'top_keywords': { 'map': """ function(doc) { if (typeof doc === 'number') { emit(doc, null); } } """ }
def setUp(self): super(ConnectionSetTest, self).setUp() self.cb = Connection(self.host, self.port, self.username, self.password, self.bucket_prefix)
def make_connection(self): return Connection(**self.make_connargs())