Свойство Функция Возвращает Свойство Объект вместо Значения - PullRequest
0 голосов
/ 05 мая 2019

У меня проблема с методами свойств в моем коде.Я строю библиотеку и делаю тесты для нее.Часть тестирования заключается в том, чтобы убедиться, что библиотека правильно обрабатывает ответ 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 возвращает объект свойства вместо словаря.Что я делаю неправильно?

Есть ли более эффективный или питонский способ форматирования call_json.py, чтобы обеспечить легкий доступ к словарям или спискам для многих файлов?

...