我不确定下面的断言为什么会失败。
有人可以给我反馈吗,我是Django的pytest的新手。
test.forms
@pytest.fixture
def product():
month = Month.objects.create(name="november",slug="november")
user = User.objects.create(username="james",password="password")
obj = Product.objects.create(
user=user,name="broom",price=19.99,quantity=1,month=month,)
data = {
'user':user,'name':obj.name,'price':obj.price,'quantity':obj.quantity,'month':month
}
form = ProductForm(data=data)
yield form
def test_product_form_with_data(product):
assert True is not None
assert True == product.is_valid()
下面是从终端获得的信息。
跟踪错误。
_______________________________________________________________________________________ test_product_form_with_data ________________________________________________________________________________________
product = <ProductForm bound=True,valid=False,fields=(name;price;quantity;month)>
def test_product_form_with_data(product):
assert True is not None
> assert True == product.is_valid()
E assert True == False
E -True
E +False
tests/test_forms.py:42: AssertionError
models.py
class Product(models.Model):
month = models.ForeignKey(Month,on_delete=models.CASCADE,related_name='months')
user = models.ForeignKey(User,related_name='users')
name = models.CharField(max_length=30)
slug = models.SlugField(max_length=30,db_index=True,blank=True)
price = models.DecimalField(max_digits=10,decimal_places=2)
quantity = models.PositiveSmallIntegerField(default=0)
created = models.DateTimeField(default=datetime.datetime.now())
is_active = models.BooleanField(default=True)
forms.py
class ProductForm(ModelForm):
class Meta:
model = Product
fields = [
'name','price','quantity','month',]
我非常感谢您提供反馈,以帮助我了解尝试在使用Fixture时使用数据测试此表单时做错的事情。