2014-02-21 43 views
1

我想编写一个测试,这需要从保存的对象recipient.expiry_date中抽取一段时间,并检查日期是未来30天。Python检查日期是未来30天

这是我曾尝试:

days_to_match = timezone.now() + timedelta(days=30) 

self.assertEqual(recipient.expiry_date, days_to_match) 

,因为它也包含了这个时间将不匹配。

这怎么办?

请注意,recipient.expiry_date是在我的模型中使用timezone.now()设置的,所以比较python的日期似乎是错误的。

回答

1

你可以只看日期部分:

self.assertEqual(recipient.expiry_date.year, days_to_match.year) 
self.assertEqual(recipient.expiry_date.month, days_to_match.month) 
self.assertEqual(recipient.expiry_date.day, days_to_match.day) 
3

正如您在this SO answer中看到的那样,您可以使用date()仅比较日期而不是时间。或者你可以把时间数据= 0

self.assertEqual(recipient.expiry_date.date(), days_to_match.date())