def test_mongodb_uri_environ(self, mongo_mock): from redisapi.storage import MongoStorage storage = MongoStorage() storage.conn() mongo_mock.assert_called_with("mongodb://localhost:27017/") os.environ["MONGODB_URI"] = "0.0.0.0" self.addCleanup(self.remove_env, "MONGODB_URI") storage = MongoStorage() storage.conn() mongo_mock.assert_called_with("0.0.0.0")
def test_mongodb_dbaas_uri_environ(self, mongo_mock): from redisapi.storage import MongoStorage os.environ["DBAAS_MONGODB_ENDPOINT"] = "0.0.0.1" self.addCleanup(self.remove_env, "DBAAS_MONGODB_ENDPOINT") storage = MongoStorage() storage.db() mongo_mock.assert_called_with("0.0.0.1")
def test_mongodb_dbaas_database_name_from_url(self, mongo_mock): from redisapi.storage import MongoStorage os.environ["DBAAS_MONGODB_ENDPOINT"] = "0.0.0.1" self.addCleanup(self.remove_env, "DBAAS_MONGODB_ENDPOINT") storage = MongoStorage() storage.db() mongo_mock.assert_called_with("0.0.0.1") mongo_mock.return_value.get_default_database.assert_called_with()
def setUp(self): os.environ["REDIS_IMAGE"] = "redisapi" self.addCleanup(self.remove_env, "REDIS_IMAGE") os.environ["DOCKER_HOSTS"] = '["http://host1.com:4243", \ "http://localhost:4243", "http://host2.com:4243"]' self.addCleanup(self.remove_env, "DOCKER_HOSTS") os.environ["SENTINEL_HOSTS"] = '["http://host1.com:4243", \ "http://localhost:4243", "http://host2.com:4243"]' self.addCleanup(self.remove_env, "SENTINEL_HOSTS") self.manager = DockerHaManager() self.storage = MongoStorage()
def test_find_instances_by_host(self): from redisapi.storage import MongoStorage storage = MongoStorage() instance = Instance("xname", "plan", [{ "host": "host", "container_id": "id", "port": "port" }]) storage.add_instance(instance) result = storage.find_instances_by_host("host") self.assertEqual(instance.endpoints[0]["container_id"], result[0].endpoints[0]["container_id"]) storage.remove_instance(instance)
def test_mongodb_dbaas_database_name_environ(self, mongo_mock): from redisapi.storage import MongoStorage os.environ["DBAAS_MONGODB_ENDPOINT"] = "0.0.0.1" os.environ["DATABASE_NAME"] = "xxxx" self.addCleanup(self.remove_env, "DBAAS_MONGODB_ENDPOINT") def error(): from pymongo.errors import ConfigurationError raise ConfigurationError() mongo_mock.return_value.get_default_database.side_effect = error storage = MongoStorage() storage.db() mongo_mock.assert_called_with("0.0.0.1") mongo_mock.return_value.__getitem__.assert_called_with("xxxx")
def test_remove_instance(self): from redisapi.storage import MongoStorage storage = MongoStorage() instance = Instance("xname", "plan", [{ "host": "host", "container_id": "id", "port": "port" }]) storage.add_instance(instance) result = storage.find_instance_by_name(instance.name) endpoint = instance.endpoints[0] self.assertEqual(endpoint["container_id"], result.endpoints[0]["container_id"]) storage.remove_instance(instance) length = storage.db()['instances'].find({ "name": instance.name }).count() self.assertEqual(length, 0)
def setUp(self): os.environ["SENTINEL_HOSTS"] = '["http://host1.com:4243", \ "http://localhost:4243", "http://host2.com:4243"]' self.addCleanup(self.remove_env, "SENTINEL_HOSTS") os.environ["REDIS_SERVER_HOST"] = "localhost" self.addCleanup(self.remove_env, "REDIS_SERVER_HOST") os.environ["REDIS_IMAGE"] = "redisapi" self.addCleanup(self.remove_env, "REDIS_IMAGE") os.environ["DOCKER_HOSTS"] = '["http://host1.com:4243", \ "http://localhost:4243"]' self.addCleanup(self.remove_env, "DOCKER_HOSTS") from redisapi.managers import DockerManager self.manager = DockerManager() client_mock = mock.Mock() client_mock.return_value = mock.Mock() self.manager.client = client_mock self.manager.health_checker = mock.Mock() self.storage = MongoStorage()
def test_bind(self): storage = MongoStorage() instance = Instance( name='myinstance', plan='development', endpoints=[{ "host": "host", "port": "port", "container_id": "id" }], ) storage.add_instance(instance) response = self.app.post("/resources/myinstance", data={"hostname": "something.tsuru.io"}) self.assertEqual(201, response.status_code) j = json.loads(response.data) endpoint = instance.endpoints[0] self.assertDictEqual( { "REDIS_HOST": endpoint["host"], "REDIS_PORT": endpoint["port"] }, j)