Estoy tratando de proporcionar integración a mi aplicación django desde la subversión a través del enganche post commit.no se pueden ver los registros insertados por django test case
Tengo un caso de prueba django (una subclase de unittest.TestCase) que (a) inserta un par de registros en una tabla, (b) genera un commit svn, (c) svn commit ejecuta un enlace que usa mi Modelo django para buscar información.
Estoy usando un sqlite3 db. La prueba es no usando la memoria: db, está usando un archivo real. Modifiqué el código de prueba de django (para depurar este problema) para evitar eliminar el db de prueba cuando está terminado para poder inspeccionarlo.
El código de prueba vuelca model.MyModel.objects.all() y los registros están allí entre (a) y (b).
Cuando el gancho se dispara en (c) también vuelca el modelo y no hay registros. Cuando inspecciono el db manualmente después de ejecutar la prueba, no hay registros.
¿Está pasando algo en el marco de prueba django que no está comprometiendo los registros con el archivo db?
Para aclarar: (d) finalizar el caso de prueba. Por lo tanto, el enlace svn commit se ejecuta antes de que finalice el caso de prueba, y antes de ejecutar cualquier código de limpieza de django db .
Información adicional: Agregué un retraso de 15 segundos entre (b) y (b) para poder examinar el archivo db manualmente en el medio de la prueba. Los registros no están en el archivo.
Vinay, gracias. Tengo ese código en mi árbol. Forcé el soporte de transacciones a False y ahora la prueba está pasando. – bstpierre
@bstpierre, ¿cómo forzaste el soporte de transacciones a False? – Greg
@Greg por el aspecto del conjunto de cambios Probablemente use 'TransactionTestCase' en lugar de' TestCase', pero es una apuesta justa que algo de esto puede haber cambiado en los últimos 7 años, así que mmmv – bstpierre