嘲笑 Peewe class 没有 return 值
Mocking a Peewe class does not return value
模拟小便 class 来模拟 class 属性
models.py
import peewe
class A():
human = CharField()
class B():
first = CharField()
second = ForeignKeyField(B, related_name="addresses")
test.py
来自模拟导入补丁
def build_A_model():
var = models.A()
var.human = "yes"
def build_B_model(A_fake_model):
var1 = models.B()
var1.first = "test"
var1.second = A_fake_model
return var1
@patch(models.A)
class testing(unittest.TestCase):
def test1(self, A_mock):
A_fake_model = build_A_model()
B_model = build_B_model(A_fake_model)
expected = {
"first": "test",
"second": {
"human": "yes"
},
}
# some function to searlize B_model to json
result = json_searlized_data
self.assertEqual(expected, result)
任务: 尝试模拟 A_Model 和 B_model 以获得所需的预期结果:
问题: Mock_A class return 是一个 Magic Mock() 而不是 return 值
错误:人类:MagicMock name='xxxxx' id='139670936802896'
问题:如何return模拟class_A模型的值?
你没有return任何东西:
def build_A_model():
var = models.A()
var.human = "yes"
添加一个return声明哟。
模拟小便 class 来模拟 class 属性
models.py
import peewe
class A():
human = CharField()
class B():
first = CharField()
second = ForeignKeyField(B, related_name="addresses")
test.py 来自模拟导入补丁
def build_A_model():
var = models.A()
var.human = "yes"
def build_B_model(A_fake_model):
var1 = models.B()
var1.first = "test"
var1.second = A_fake_model
return var1
@patch(models.A)
class testing(unittest.TestCase):
def test1(self, A_mock):
A_fake_model = build_A_model()
B_model = build_B_model(A_fake_model)
expected = {
"first": "test",
"second": {
"human": "yes"
},
}
# some function to searlize B_model to json
result = json_searlized_data
self.assertEqual(expected, result)
任务: 尝试模拟 A_Model 和 B_model 以获得所需的预期结果:
问题: Mock_A class return 是一个 Magic Mock() 而不是 return 值
错误:人类:MagicMock name='xxxxx' id='139670936802896'
问题:如何return模拟class_A模型的值?
你没有return任何东西:
def build_A_model():
var = models.A()
var.human = "yes"
添加一个return声明哟。