Насмешка над методом __init__ с закрытыми полями - PullRequest
0 голосов
/ 06 февраля 2019

Допустим, у нас есть этот класс, который извлекает данные из DWH

from utils import fetch_data


class MyClass(self):
    def __init__(self):
        self.__query_name = 'query_name'
        self.__data = None

    @property
    def query_name(self):
        return self.__query_name

    @property
    def data(self):
        if self.__data:
            return self.__data.copy(deep=True)

    def fetch_data(self):
        self.__data = fetch_data(query_name=self.__query_name)

Я хотел бы проверить поведение метода fetch_data с помощью pytest.чтобы сделать это, мне нужно изменить __query_name на «query_name_test», чтобы не попадать в производственную базу данных.У вас есть какие-нибудь предложения?

На данный момент я делаю это, но я надеюсь, что есть лучший способ

my_class = MyClass()
my_class.__dict__['_MyClass__query_name'] = 'query_name_test' 
...