Вызов объекта генератора возвращает ошибку «TypeError:« dict »объект не может быть вызван» - PullRequest
1 голос
/ 10 февраля 2020

У меня есть функция Generate, которую я использую для генерации пользовательских данных. Затем передать его в прибор Pytest для использования в тестовом примере.

Однако, когда я пытаюсь запустить его. Я получаю TypeError: 'dict' object is not callable.

Я вызываю функцию, которая возвращает словарь, а не сам словарь. Почему я получаю эту ошибку?

Generate.py:

class Generate(object):
    def __init__(self):
        fake = Faker()

        self.user = {
            "Username": fake.name().split(' ', 1)[0],
            "Email Address": fake.email(),
            "Password": fake.word(),
            "Todo": fake.word()
        }

    def user(self):
        new_user = self.user
        return new_user

conftest.py:

@pytest.fixture
def user():
    generator = Generate()
    user = generator.user()
    yield user

1 Ответ

2 голосов
/ 10 февраля 2020

При написании generator.user вы ссылаетесь на атрибут user вашего класса (который вы определили с помощью self.user=...). Это действительно словарь. Это скрывает метод, который вы также назвали user. Вам, вероятно, следует переименовать одно из двух, например:

def GetUser(self):
    new_user = self.user
    return new_user
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...