pytest AttributeError:在Python 3中引用固定装置时,“函数对象没有属性”

时间:2018-10-30 20:53:23

标签: python python-3.x pytest

我有一个要测试的模型和一个控制器:

class Model:

    def __init__(self):
        self.display = ""

    def set_display(self, display):
        self.display = display

import pytest
from model import Model
from controller import Controller

@pytest.fixture
def model():
    return Model()

@pytest.fixture
def controller(model):
    return Controller(model)

def test_clear_button(controller):
    controller.button_pressed("4")
    controller.button_pressed("2")
    controller.button_pressed("C")
    assert model.display == "0"

E AttributeError:“函数”对象没有属性“显示”

以上是每次运行测试时遇到的错误/失败。

class Controller:

    def __init__(self, model):
        self.model = model

    def button_pressed(self, button_label):
        pass

1 个答案:

答案 0 :(得分:2)

根据pytest,请执行以下操作:

$time = Carbon::createFromFormat('d-m-Y H:i:s', $value["date"] . " " . $value["time"]);
$timestr = $time->format('h:i:s');

然后:

createFromFormat

您定义了一个称为@pytest.fixture def model(): return Model() 的固定装置,该固定装置引用了另一个称为@pytest.fixture def controller(model): return Controller(model) 的固定装置来在controller类的实例上定义model。因此,您似乎未正确引用model

Controller

或者,或者:

model