示例#1
0
    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")
示例#2
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")
示例#3
0
 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()
示例#4
0
 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()
示例#5
0
 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)
示例#6
0
    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")
示例#7
0
 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)
示例#8
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()
示例#9
0
 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)