[英]Django Cusom User Manager Unit Test - NoneType object is not callable
[英]Django test object is not callable
我正在嘗試在下面創建測試,並且收到以下消息:
TypeError:“ datetime.datetime”對象不可調用
在線:self.stock.expiry_date(昨天)
測試
def test_stock_passed_expiration(self):
"""
'True' returned when stock is passed it's expiration date.
"""
yesterday = date.today()-timedelta(days=1)
self.stock.expiry_date(yesterday)
self.assertEqual(self.stock.has_expried(), True)
模型:
class Stock(models.Model):
product = models.ForeignKey(Product, related_name="stocks")
expiry_date = models.DateTimeField(default=timezone.now)
def has_expried(self):
if timezone.now > self.expiry_date:
return True
return False
你有
self.stock.expiry_date(yesterday)
但意味着
self.stock.expiry_date = yesterday
您嘗試將self.stock.expiry_date
(日期時間對象)視為函數,從而導致該錯誤消息。
在您的測試函數中,您正在調用expiry_date,就好像它是一個函數一樣。 相反,將self.expiry_date屬性設置為昨天,保存模型,您的測試應該可以工作。
def test_stock_passed_expiration(self):
"""
'True' returned when stock is passed it's expiration date.
"""
yesterday = date.today()-timedelta(days=1)
self.stock.expiry_date = yesterday
self.stock.save()
self.assertEqual(self.stock.has_expried(), True)
運用
self.stock.expiry_date = yesterday
self.stock.save()
要么
self.stock.set(expiry_date=yesterday).save()
相反會幫助你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.