llegué a este tema en la actualidad. Eventualmente terminé refactorizando mis migraciones para que usen funciones de ayuda para insertar los datos, y luego llamar a las mismas funciones desde el setUp() de mis pruebas.
Algunos consejos;
Haga sus funciones de ayuda toman la clase de modelo como un argumento, por lo que se les puede llamar con ORM [ 'yourapp.YourModel'] de la migración y con models.YourModel de la prueba. Eso también muestra la principal limitación: South funciona para los modelos cuyo esquema ha cambiado desde entonces, el código de prueba no puede hacer eso. Tuve suerte de que este modelo en particular no haya cambiado.
Si desea conservar los métodos de ayuda dentro de las migraciones, encontrará que no puede importar directamente yourapp.migrations.0001_some_migration porque los identificadores no pueden comenzar con números. Use algo como migration_0001 = importlib.import_module('yourapp.migrations.0001_some_migration')
en lugar de un extracto de importación.
¿Quizás podría intentar eliminar la carpeta 'migrations' en cada directorio de la aplicación y ejecutar' ./manage.py schemamigration app --initial'? Haz una copia de seguridad de todo primero, porque esto puede funcionar o no. –
Esto funcionaría para mis pruebas unitarias, ¡pero rompería mis sistemas de producción! –