Sobrescribir auto_now para unittest

He definido algunas marcas de tiempo para eventos en la base de datos comoauto_now_add, ya que la información debe almacenarse con su marca de tiempo al mismo tiempo que se almacena el evento.

La descripción de los eventos es algo así como

class NewEvent(models.Model):
    '''
    Individual event
    '''
    name = models.CharField(max_length=100)
    quantity = models.FloatField(null=True)
    timestamp = models.DateTimeField(auto_now_add=True)

Para probar el módulo, estoy generando información en la base de datos en eltest.py archivo, de esta manera:

    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()

Debo generar eventos con su marca de tiempo de ayer (el módulo los resumirá). El problema es que no puede sobrescribir la marca de tiempo. La marca de tiempo es aquella en la que se produce el evento, eldocumentación declara eso muy claramente.

Entonces, ¿cómo generar datos con marcas de tiempo apropiadas para la prueba? He tenido varias ideas:

Quizás genere los datos de la base de datos de una manera diferente, fuera de las clases Modelo. ¿Dónde y cómo?De alguna manera, defina una clase diferente o cambie la clase para que se comporte de manera diferente durante la prueba, algo así como

_

 if testing:
     timestamp = models.DateTimeField(auto_now_add=True)
 else:
     timestamp = models.DateTimeField(auto_now_add=False)

O tal vez hay una manera aún más fácil de hacer esto ... ¿Alguna idea?

Respuestas a la pregunta(3)

Su respuesta a la pregunta