告警处理 Unresolved attribute reference 'status_code' for class 'object'

代码中有如下告警:

  1.  Unresolved attribute reference 'status_code' for class 'object'

这个错误通常出现在使用Python进行编程时,尤其是在使用类似于Django或Flask这样的Web框架时。它意味着你尝试在一个类的实例中访问一个不存在的属性status_code。在这个上下文中,'object'通常指的是Python中的基类object,你可能预期这个属性是某个特定类的成员,但实际上object并没有这个属性。

    2.  Unresolved attribute reference 'json' for class 'object'

这个错误通常出现在使用Python的类定义中,特别是在使用类型注解时。错误信息表明类 'object' 中有一个无法解析的属性引用 'json'。这通常意味着在类型注解中使用了一个不存在的属性或者方法 'json'。

 

class TestLogin:

    def test_login(self):
        url = 'http://127.0.0.1:80/api/mgr/signin'
        data = {
            'username': 'byhy',
            'password': '88888888'
        }
        try:
            res = requests.post(url, data=data)
            assert res.status_code == 200
        except BaseException as e:
            print("错误信息:",e.args)
        else:
            print(res.json())
            return res

 

原因是: 

1.  assert res.status_code == 200  时,需要确保 res是一个object(即python对象), 且该对象中有status_code

2.  print(res.json())  时, 需要确保 res是一个requests.Response对象, 只有当res是一个requests.Response对象时,才会继续执行后续的代码

处理后如下

import requests
class TestLogin:

    def test_login(self):
        url = 'http://127.0.0.1:80/api/mgr/signin'
        data = {
            'username': 'byhy',
            'password': '88888888'
        }
        try:
            res = requests.post(url, data=data)
            if isinstance(res, object) and hasattr(res, 'status_code'):
                assert res.status_code == 200
        except BaseException as e:
            print("错误信息:", e.args)
        else:
            if isinstance(res,requests.Response):
                print(res.json())
            return res

 

posted @ 2024-12-25 20:43  Avicii_2018  阅读(166)  评论(0)    收藏  举报