python - 属性函数返回属性对象而不是值
问题描述
我的代码中的属性方法有问题。我正在建立一个图书馆,我正在为它做测试。部分测试是确保库正确处理 json api 响应。我有大量的 json 响应,我将它们合并到一个文件中,我想在测试中引用这些响应。我的第一个想法是创建单独的类和属性函数,为每个调用返回 json。理想情况下,我想做这些staticmethods
,classmethods
这样我就不必实例化对象。即return_value=call_json.Login.correct_login
。问题是当我在测试中引用该函数时,它返回属性对象而不是字典。
例如:
from . import call_json
import pytest
LOGIN_CALL = call_json.Login.correct_call
Class TestLogin:
@pytest.fixture
def api_mock(self, caplog):
(api call mock & objects initialized)
def test_correct_login(self, api_mock):
self.mock_api.return_value = (LOGIN_CALL, 200)
# The api call responds with a tuple of (dict, 200)
call_json.py:
class Login:
@property
@staticmethod
def correct_call():
return {code: 0, token: 'tk', ID: 'id'}
测试失败,因为 LOGIN_CALL 返回属性对象而不是字典。我究竟做错了什么?
是否有更有效或 Pythonic 的方式来格式化 call_json.py 以允许跨多个文件轻松访问字典或列表?
解决方案
推荐阅读
- excel - 在VBA中插入列后查找单元格
- ionic-framework - node.exe : [ERROR] 运行子进程电容器时发生错误
- python - 如何在 GTK.TreeView 的一行中添加工具提示?(Python 绑定)
- excel - MS Excel 在单元格中显示额外的连字符
- arrays - Go Struct JSON 数组数组
- node.js - Docker - 在 docker 容器日志中找不到模块
- salesforce - 使用 sfdx CLI 将 Salesforce CustomObjects 和 ApexClass 作为代码拉取的问题
- angular - 如何在库 angular 中使用 scss 文件创建组件
- ruby-on-rails - Git lfs mp4文件没有在heroku上播放
- r - 尝试四舍五入减去 r 中的日期