¿Cómo llegar el viernes pasado?

El siguiente código debe regresar el viernes pasado, a las 16:00:00. Pero vuelveViernes de la semana anterior. ¿Cómo arreglar eso?

now = datetime.datetime.now()
test = (now - datetime.timedelta(days=now.weekday()) + timedelta(days=4, weeks=-1))
test = test.replace(hour=16,minute=0,second=0,microsecond=0)

Actualizaciones Utilizo el siguiente enfoque ahora: ¿es el mejor?

now = datetime.datetime.now()
if datetime.datetime.now().weekday() > 4:
    test = (now - datetime.timedelta(days=now.weekday()) + timedelta(days=4))
else:
    test = (now - datetime.timedelta(days=now.weekday()) + timedelta(days=4, weeks=-1))
test = test.replace(hour=16,minute=0,second=0,microsecond=0)

Upd2. Solo para dar un ejemplo. Supongamos que hoy es5 de octubre de 2012. En caso de que la hora actual sea igual o menor que16:00 debería volverSep 28 de 2012de lo contrario5 de octubre de 2012.

Respuestas a la pregunta(6)

Su respuesta a la pregunta