def test_migrate_exists(self): key, value = self.uuid4(2) result = yield self.expiring_set(key, value) self.assertTrue(result) client = tredis.RedisClient(self.redis_host, self.redis2_port, 10) result = yield client.set(key, value, 10) self.assertTrue(result) with self.assertRaises(exceptions.RedisError): yield self.client.migrate(self.redis2_host, 6379, key, 10, 5000)
def test_on_close_callback_invoked(self): on_close = mock.Mock() client = tredis.RedisClient(os.getenv('REDIS_HOST', 'localhost'), int(os.getenv('REDIS_PORT', '6379')), 0, on_close) result = yield client.set('foo', 'bar', 10) self.assertTrue(result) result = yield self._kill_client(client) self.assertTrue(result) on_close.assert_called_once_with()
def test_migrate(self): key, value = self.uuid4(2) result = yield self.expiring_set(key, value) self.assertTrue(result) result = yield self.client.migrate(self.redis2_host, 6379, key, 10, 5000) self.assertTrue(result) client = tredis.RedisClient(self.redis_host, self.redis2_port, 10) response = yield client.get(key) self.assertEqual(response, value) result = yield self.client.get(key) self.assertIsNone(result)
def test_migrate(self): self.client.pipeline_start() key, value = self.uuid4(2) self.client.set(key, value, 10) self.client.migrate(self.redis2_host, 6379, key, 10, 5000) result = yield self.client.pipeline_execute() self.assertListEqual(result, [True, True]) client = tredis.RedisClient(self.redis_host, self.redis2_port, 10) result = yield client.get(key) self.assertEqual(result, value) result = yield self.client.get(key) self.assertIsNone(result)
def test_migrate_copy(self): key, value = self.uuid4(2) result = yield self.expiring_set(key, value) self.assertTrue(result) result = yield self.client.migrate(self.redis2_ip, 6379, key, 10, 5000, copy=True) self.assertTrue(result) client = tredis.RedisClient(self.redis_host, self.redis2_port, 10, auto_connect=False) yield client.connect() result = yield client.get(key) self.assertEqual(result, value) result = yield self.client.get(key) self.assertEqual(result, value)
# В случае проблем с чтением настроек из файла, оставим пустые настройки. settings = {} # Базовые настройки запуска системы define("port", default=settings["system_port"], help="run on the given port", type=int) # Настройки подключения к базе данных MongoDB client_motor = db_motor = None settings_db = settings.get("db", {}) for connection_name, setting_db in settings_db.items(): client_motor = MotorClient(setting_db["host"], setting_db["port"]) # todo Разрулить с доступами к базам db_motor = client_motor[setting_db["name"]] # Настройки подключения к Redis client_redis = tredis.RedisClient(host=settings["redis"]["host"], port=settings["redis"]["port"]) # Настройки SSL try: ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ssl_ctx.load_cert_chain(settings["ssl"]["certificates"][0], settings["ssl"]["certificates"][1]) except KeyError: ssl_ctx = None # Настройки приложения - доступны внутри хендлеров через self.settings system_settings = { "client_motor": db_motor, "client_redis": client_redis, } settings.update(system_settings)
def test_bad_db_raises_exception(self): client = tredis.RedisClient(os.getenv('REDIS_HOST', 'localhost'), int(os.getenv('REDIS_PORT', '6379')), db=255) with self.assertRaises(exceptions.RedisError): yield client.get('foo')
def test_bad_connect_raises_exception(self): client = tredis.RedisClient(str(uuid.uuid4())) with self.assertRaises(exceptions.ConnectError): yield client.get('foo')
def test_bad_connect_in_pipeline_raises_exception(self): client = tredis.RedisClient(str(uuid.uuid4())) with self.assertRaises(exceptions.ConnectError): client.pipeline_start() client.get('foo') yield client.pipeline_execute()
def setUp(self): super(AsyncTestCase, self).setUp() self.client = tredis.RedisClient(os.getenv('REDIS_HOST', 'localhost'), int(os.getenv('REDIS_PORT', '6379')), int(os.getenv('REDIS_DB', '0'))) self._execute_result = None