Я определил некоторые временные метки для событий в базе данных как auto_now_add
, поскольку информация должна храниться вместе с ее временной меткой одновременно с сохранением события.
Описание событий что-то вроде
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()
Я должен генерировать события с временной меткой вчерашнего дня (модуль затем суммирует их). Проблема в том, что вы не можете перезаписать метку времени. Временная метка - это дата, когда производится событие, в документации это очень четко указано.
Итак, как генерировать данные с соответствующими временными метками для тестирования? У меня было несколько идей:
- Может быть, генерировать данные базы данных другим способом, вне классов Model. Где и как?
- Каким-то образом определите другой класс или измените класс, чтобы он вел себя по-разному во время теста, что-то вроде
_
if testing:
timestamp = models.DateTimeField(auto_now_add=True)
else:
timestamp = models.DateTimeField(auto_now_add=False)
Или, может быть, есть еще более простой способ сделать это ... Есть идеи?