def test_document_class(self): c = MasterSlaveConnection(self.master, self.slaves) db = c.pymongo_test w = 1 + len(self.slaves) db.test.insert({"x": 1}, w=w) self.assertEqual(dict, c.document_class) self.assertTrue(isinstance(db.test.find_one(), dict)) self.assertFalse(isinstance(db.test.find_one(), SON)) c.document_class = SON self.assertEqual(SON, c.document_class) self.assertTrue(isinstance(db.test.find_one(), SON)) self.assertFalse(isinstance(db.test.find_one(as_class=dict), SON)) c = MasterSlaveConnection(self.master, self.slaves, document_class=SON) db = c.pymongo_test self.assertEqual(SON, c.document_class) self.assertTrue(isinstance(db.test.find_one(), SON)) self.assertFalse(isinstance(db.test.find_one(as_class=dict), SON)) c.document_class = dict self.assertEqual(dict, c.document_class) self.assertTrue(isinstance(db.test.find_one(), dict)) self.assertFalse(isinstance(db.test.find_one(), SON))
def setUp(self): host = os.environ.get("DB_IP", "localhost") self.master = Connection(host, int(os.environ.get("DB_PORT", 27017))) self.slaves = [] try: self.slaves.append( Connection(os.environ.get("DB_IP2", host), int(os.environ.get("DB_PORT2", 27018)), slave_okay=True)) except ConnectionFailure: pass try: self.slaves.append( Connection(os.environ.get("DB_IP3", host), int(os.environ.get("DB_PORT3", 27019)), slave_okay=True)) except ConnectionFailure: pass if not self.slaves: raise SkipTest() self.connection = MasterSlaveConnection(self.master, self.slaves) self.db = self.connection.pymongo_test
def setUp(self): raise SkipTest("master-slave setups are unsupported in TokuMX") self.master = MongoClient(host, port) self.slaves = [] try: self.slaves.append( MongoClient(host2, port2, read_preference=ReadPreference.SECONDARY)) except ConnectionFailure: pass try: self.slaves.append( MongoClient(host3, port3, read_preference=ReadPreference.SECONDARY)) except ConnectionFailure: pass if not self.slaves: raise SkipTest("Not connected to master-slave set") self.client = MasterSlaveConnection(self.master, self.slaves) self.db = self.client.pymongo_test
def setUp(self): self.master = MongoClient(host, port) self.slaves = [] try: self.slaves.append( MongoClient(host2, port2, read_preference=ReadPreference.SECONDARY)) except ConnectionFailure: pass try: self.slaves.append( MongoClient(host3, port3, read_preference=ReadPreference.SECONDARY)) except ConnectionFailure: pass if not self.slaves: raise SkipTest("Not connected to master-slave set") self.ctx = catch_warnings() warnings.simplefilter("ignore", DeprecationWarning) self.client = MasterSlaveConnection(self.master, self.slaves) self.db = self.client.pymongo_test
def master_slave_factory(master, slaves): master = _to_connection(master) slaves = map(_to_connection, slaves) return MasterSlaveConnection(master, slaves, document_class=document_class, tz_aware=tz_aware)
def setUp(self): host = os.environ.get("DB_IP", "localhost") self.master = Connection(host, int(os.environ.get("DB_PORT", 27017))) self.slaves = [] try: self.slaves.append( Connection(os.environ.get("DB_IP2", host), int(os.environ.get("DB_PORT2", 27018)), read_preference=ReadPreference.SECONDARY)) except ConnectionFailure: pass try: self.slaves.append( Connection(os.environ.get("DB_IP3", host), int(os.environ.get("DB_PORT3", 27019)), read_preference=ReadPreference.SECONDARY)) except ConnectionFailure: pass if not self.slaves: raise SkipTest("Not connected to master-slave set") self.connection = MasterSlaveConnection(self.master, self.slaves) self.db = self.connection.pymongo_test
def test_tz_aware(self): dt = datetime.datetime.utcnow() conn = MasterSlaveConnection(self.master, self.slaves) self.assertEqual(False, conn.tz_aware) db = conn.pymongo_test w = 1 + len(self.slaves) db.tztest.insert({'dt': dt}, safe=True, w=w) self.assertEqual(None, db.tztest.find_one()['dt'].tzinfo) conn = MasterSlaveConnection(self.master, self.slaves, tz_aware=True) self.assertEqual(True, conn.tz_aware) db = conn.pymongo_test db.tztest.insert({'dt': dt}, safe=True, w=w) self.assertEqual(utc, db.tztest.find_one()['dt'].tzinfo) conn = MasterSlaveConnection(self.master, self.slaves, tz_aware=False) self.assertEqual(False, conn.tz_aware) db = conn.pymongo_test db.tztest.insert({'dt': dt}, safe=True, w=w) self.assertEqual(None, db.tztest.find_one()['dt'].tzinfo)
def test_use_greenlets(self): self.assertFalse(self.client.use_greenlets) if thread_util.have_gevent: master = MongoClient(host, port, use_greenlets=True) slaves = [ MongoClient(slave.host, slave.port, use_greenlets=True) for slave in self.slaves ] self.assertTrue( MasterSlaveConnection(master, slaves).use_greenlets)
def _master_slave_connection(master, port, slaves): ''' Master slave connection. Read from secondary. ''' m_con = Connection(master, port) s_con = [] for slave in slaves.split(','): items = slave.split(':') host = items[0] port = int(items[1]) or 27017 if len(items) > 1 else 27017 s_con.append(Connection(host, port)) con = MasterSlaveConnection(m_con, s_con) con.read_prefrence = ReadPreference.SECONDARY return con
# -*- coding: utf-8 -*- import gridfs from pymongo import Connection from pymongo.master_slave_connection import MasterSlaveConnection import dbconf try: dbconf.slave except: conn = Connection(host=dbconf.master) else: master_conn = Connection(host=dbconf.master) slave_conns = [Connection(host=i) for i in dbconf.slave] conn = MasterSlaveConnection(master_conn, slave_conns) androidesk = conn['androidesk'] imgfs = gridfs.GridFS(conn['imgfs']) """user collection has email: 注册邮箱 (str) nickname: 昵称 (str) passwd: 密码,明文 (str) avatar: 头像 (gridfs id) artist: 是否有创建主题权限 (bool) super: 是否是超级用户 (bool) wallpaper: 当前使用壁纸 (gridfs id) lastlogin: 最后一次登录 (datetime) IEME: IEME (str) phone_number: 电话号码 (str) logined: 是否已登录(str)