我定義了一些時間戳在數據庫中auto_now_add
事件,應將信息存儲與它的時間戳,同時被存儲的事件。覆蓋auto_now的單元測試
事件的描述是一樣的東西
class NewEvent(models.Model):
'''
Individual event
'''
name = models.CharField(max_length=100)
quantity = models.FloatField(null=True)
timestamp = models.DateTimeField(auto_now_add=True)
要測試的模塊,我在test.py
文件生成數據庫中的某些信息,這種方式:
for event in EVENT_TYPES:
time = datetime.datetime.now() - datetime.timedelta(days=1)
for i in range(48):
time = time.replace(hour=i/2)
NewEvent(name=event,
timestamp=time,
quantity=i).save()
我必須用昨天的時間戳生成事件(模塊將會總結它們)。問題是你不能覆蓋時間戳。時間戳是它生成的事件的時間戳,documentation表示非常清楚。
那麼,如何生成與測試appropiate時間戳數據?我有幾個想法:
- 也許以不同的方式在Model類之外生成數據庫數據。在哪裏以及如何?
- 不知怎的,定義不同的類或測試過程中改變類的行爲方式不同,像
_
if testing:
timestamp = models.DateTimeField(auto_now_add=True)
else:
timestamp = models.DateTimeField(auto_now_add=False)
或者,也許有一個更簡單的方法來做到這一點...任何想法?
'timestamp = models.DateTimeField(auto_now_add = testing)'如何簡化? –
如果測試,'testing'變量將爲真?這會很棒,但在這種情況下,它應該是'auto_now_add = not testing',我想... – Khelben
這是你的問題和你的例子,隨時修復它。 –