属性函数返回属性对象而不是值

时间:2019-05-04 23:32:46

标签: python properties static-methods class-method

我的代码中的属性方法有问题。我正在建立一个库,并为此进行测试。测试的一部分是确保库正确处理json api响应。我有大量的json响应,这些响应已合并到一个文件中,我想在测试中引用该文件。我的第一个想法是制作单独的类和属性函数,以便为每个调用返回json。理想情况下,我想制作这些staticmethodsclassmethods,这样就不必实例化该对象。即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返回的是属性对象而不是字典。我究竟做错了什么?

是否存在更有效或更Python化的格式来格式化call_json.py以允许在许多文件中轻松访问字典或列表?

0 个答案:

没有答案