Пример #1
0
 def test_get_metrics_failed(self, db):
     server = Server(name='test', host='127.0.0.1', port='6379')
     try:
         server.get_metrics()
     except RestException as e:
         assert e.code == 400
         assert e.message == 'redis server %s can not connected' % server.host
Пример #2
0
    def test_update_server_success_with_duplicate_server(
            self, server, client, admin):
        """更新服务器名称为其他同名服务器名称时失败
        """
        errors = {'message': 'redis server already exist', 'ok': False}

        assert Server.query.count() == 1
        # 先创建 Redis 服务器
        second_server = Server(name='second_server',
                               description='test',
                               host='192.168.0.1',
                               port=6379)
        second_server.save()
        assert Server.query.count() == 2

        # 尝试将 second_server 的名称更新成和 server 一致,将会失败
        data = {'name': server.name}

        # 通过 '/servers/<int:object_id>' 接口更新 Redis 服务器
        headers = self.token_header(admin)
        resp = client.put(url_for(self.endpoint, object_id=second_server.id),
                          data=json.dumps(data),
                          headers=headers)

        assert resp.status_code == 400
        assert resp.json == errors
Пример #3
0
def server(db):
    """测试 Redis 服务器记录
    """
    server = Server(name='redis_test',description='this is a test record',
            host='127.0.0.1',port='6379')
    server.save()
    return server
Пример #4
0
    def test_update_server_success_with_duplicate_server(self, server, client):
        """
        更新服务器名称为其他同名服务器名称时失败
        """
        errors = {'name': 'Redis server already exist'}

        assert Server.query.count() == 1
        # 先创建 Redis 服务器
        second_server = Server(name='second_server',
                               description='test',
                               host='192.168.0.1',
                               port=6379)
        second_server.save()
        assert Server.query.count() == 2

        # 尝试将 second_server 的名称更新成 server 一直,将会失败
        data = {'name': server.name}

        # 通过 '/servers/' 接口创建 Redis 服务器
        resp = client.put(url_for(self.endpoint, object_id=second_server.id),
                          data=json.dumps(data),
                          content_type='application/json')

        assert resp.status_code == 400
        assert resp.json == errors
Пример #5
0
    def test_save(self, db):

        assert Server.query.count() == 0
        server = Server(name='test', host='127.0.0.1')
        server.save()
        assert Server.query.count() == 1
        assert Server.query.first() == server
Пример #6
0
def server(db):
	"""测试Redis服务器记录,相当于为数据库添加一条记录, 作为依赖,用于测试服务器的相关功能
	"""
	server = Server(name='redis_test', description='this is a test record',
	                host='127.0.0.1', port='6379')
	server.save()
	return server
Пример #7
0
 def test_ping_failed(self, db):
     server = Server(name='test', host='127.0.0.1', port=6399)
     try:
         server.ping()
     except RestException as e:
         assert e.code == 400
         assert e.message == 'redis server %s can not connected' % server.host
Пример #8
0
    def test_save(self, db):
        """test Server.save func
        """
        assert Server.query.count() == 0
        server = Server(name='test', host='127.0.0.1')

        server.save()
        assert Server.query.count() == 1
Пример #9
0
 def test_ping_failed(self, db):
     # 没有Redis服务器在127.0.0.1:6399地址,所以将访问失败
     server = Server(name='test', host='localhost', port=6399)
     try:
         server.ping()
     except RestException as e:
         assert e.code == 400
         assert e.message == 'redis server %s can not connected' % server.host
Пример #10
0
 def test_get_metrics_failure(self, db):
     server = Server(name='test', host='127.0.0.1', port=6399)
     try:
         server.get_metrics()
     except RestException as e:
         assert e.code == 400
         assert e.message == 'cannot connect to redis server {}'.format(
             server.host)
Пример #11
0
def server(db):
    """test redis server log
    """

    server = Server(name="redis test", description='this is a test record', 
            host='127.0.0.1', port='6379')
    server.save()
    return server 
Пример #12
0
def server(db):

    server = Server(name='redis_test',
                    desc='this is a test record',
                    host='127.0.0.1',
                    port='6379')
    server.save()
    return server
Пример #13
0
def server(db):
    """test Redis server record
    """

    server = Server(name='redis_fixtures',
                    description='this is a test record',
                    host='127.0.0.1',
                    port='6379')
    server.save()
    return server
Пример #14
0
 def test_ping_failed(self, db):
     server = Server(name='test', host='127.0.0.1', port=1399)
     # server.ping()
     try:
         server.ping()
     except RestException as e:
         assert e.code == 400
         assert e.message == 'redis server {} can not connected'.format(
             server.host)
     else:
         assert False
Пример #15
0
 def test_ping_failed(self, db):
     """测试 Server.ping 方法执行失败
     Server.ping 方法执行失败时,会抛出 RestException
     """
     # 没有 Redis 服务器监听在 127.0.0.1:6399 地址, 所以将访问失败
     server = Server(name='test', host='127.0.0.1', port=6399)
     try:
         server.ping()
     except RestException as e:
         assert e.code == 400
         assert e.message == 'redis server %s can not connected' % server.host
Пример #16
0
 def test_save(self, db):
     """测试Server.save保存服务器方法"""
     # 初始状态下,数据库中没有保存任何Redis,即数量为0
     assert Server.query.count() == 0
     server = Server(name='test', host='127.0.0.1')
     # 保存到数据库中
     server.save()
     # 现在数据中redis数量为1
     assert Server.query.count() == 1
     # 且数据库中的记录就是之前创建的记录
     assert Server.query.first() == server
Пример #17
0
 def test_get_server_success(self, server, client):
     """测试获取 Redis 服务器详情
     """
     server = Server(name='test', host='127.0.0.1')
     server.save()
     resp = client.get(url_for(self.endpoint, object_id=server.id))
     servers = resp.json
     h = servers
     assert h['name'] == 'test'
     assert h['host'] == '127.0.0.1'
     assert h['port'] == 6379
Пример #18
0
    def test_get_metrics_failed(self, server):
        """测试 Server.get_metrics 方法执行失败
        """

        # 没有 Redis 服务器监听在 127.0.0.1:6399 地址, 所以将访问失败
        server = Server(name='test', host='127.0.0.1', port=6399)

        try:
            server.get_metrics()
        except RedisConnectError as e:
            assert e.code == 400
            assert e.message == 'redis server %s can not connected' % server.host
Пример #19
0
    def test_save(self, db):
        """
            test Server.save
        """
        # 初始状态下数据库没有保存Redis,所以此时数量为0

        assert Server.query.count() == 0
        server = Server(name='test', host='127.0.0.1')
        server.save()
        # 现在数据库的数量为1
        assert Server.query.count() == 1
        # 且数据库的记录就是之前创建的记录
        assert Server.query.first() == server
Пример #20
0
 def test_ping_faild(self, db):
     """
     测试 Server.ping 方法执行失败
         Server.ping 方法执行失败时, 会抛出 RestException 异常
     :param db:
     :return:
     """
     server = Server(name='test', host='127.0.0.1', port=6399)
     try:
         server.ping()
     except RestException as e:
         assert e.code == 400
         assert e.message == 'redis server %s can not connected' % server.host
Пример #21
0
    def test_ping_failure(self, db):
        """
            when Server.ping fails 
            it raises RestException 
            """
        server = Server(name='test', host='127.0.0.1', port=6399)

        try:
            server.ping()
        except RestException as e:
            assert e.code == 400
            assert e.message == 'cannot connect to redis server {}'.format(
                server.host)
Пример #22
0
 def test_update_server_success_with_duplicate_server(self, server, client):
     """更新服务器名称为其他同名服务器名称时失败
     """
     server_test = Server(name='test', host='127.0.0.1')
     server_test.save()
     resp = client.put(url_for(self.endpoint, object_id=server.id),
                       data=json.dumps(dict(name='test')),
                       content_type='application/json')
     print(resp.data)
     assert resp.status_code == 400
     result = resp.json
     assert result['ok'] == False
     assert result['message'] == 'Redis server already exist'
Пример #23
0
    def test_save(self, db):
        """测试Server.save 保存服务器方法
        """

        # 初始状态下,数据库没有保存任何Redis服务器,所以数量为0
        assert Server.query.count() == 0
        # 创建server对象
        server = Server(name='test', host='127.0.0.1')
        # 保存到数据库中
        server.save()
        # 此时数据库中Redis服务器数量变为1
        assert Server.query.count() == 1
        # 并且查询到的对象就是刚刚存入的对象
        assert Server.query.first() == server
Пример #24
0
    def test_get_metrics_failed(self, db):
        """测试 Server.get_metrics方法执行失败

        Server.get_metrics方法执行失败时,会抛出RestException 异常
        """

        # 没有Redis服务器监听在6399端口上,所以将访问失败
        server = Server(name='test', host='127.0.0.1', port=6399)

        try:
            server.get_metrics()
        except RestException as e:
            assert e.code == 400
            assert e.message == 'redis server %s can not connected' % server.host
Пример #25
0
    def test_save(self, db):
        '''
        测试 Server.save 保存服务器的方法
        '''

        # 初始状态下,数据库中没有保存任何 Redis,所以数量为 0
        assert Server.query.count() == 0
        server = Server(name='test', host='127.0.0.1')
        # 保存到数据库中
        server.save()
        # 现在数据库中数量变为 1
        assert Server.query.count() == 1
        # 且数据库中的记录就是之前创建的记录
        assert Server.query.first() == server
Пример #26
0
    def test_update_server_failed_with_duplicate_server(self, server, client):
        """更新服务器名称为其他同名服务器名称时失败:
           假设要更新server的name字段,但是更改的时候改成了和second_server 同名报错
        """

        # 数据库中有一条记录
        assert Server.query.first() == server

        # 创建second_server
        second_server = Server(name='second_server',
                               host='192.168.0.1',
                               port=6379)
        second_server.save()

        # 数据库中有两条记录
        assert Server.query.count() == 2

        data = {
            'name': second_server.name,  # 更新名字,与另一记录重复
            'description': 'I have changed the description'  # 更新描述
        }
        headers = {'Content-Type': 'application/json'}

        # HTTP put方法更新sever服务器,并与second_server同名
        resp = client.put(url_for(self.endpoint, object_id=server.id),
                          data=json.dumps(data),
                          headers=headers)

        # 更新失败,状态码为400
        assert resp.status_code == 400

        # 验证错误信息
        assert resp.json == {
            'ok': False,
            'message': 'Redis server alredy exist'
        }