Mam model z managed = False.Jak utworzyć tabelę podczas testów Django z managed = False
class SampleModel(models.Model):
apple = models.CharField(max_length=30)
orange = models.CharField(max_length=30)
class Meta:
managed = False
mam badanej jednostki, która tworzy SampleModel, jednak gdy uruchamiam test uzyskać:
DatabaseError: no such table: SAMPLE_SAMPLE_MODEL
Docs django - https://docs.djangoproject.com/en/dev/ref/models/options/#managed dokumentuje następujące:
Dla testów w przypadku modeli z managed = False, od Ciebie zależy, czy poprawne tabele zostaną utworzone w ramach konfiguracji testowej.
Jak mogę "tworzyć" tabele podczas konfiguracji testu? Lub alternatywnie, jak mogę to zrobić, aby podczas testowania ten model miał "managed = True" na czas trwania testu?
W prawdziwej aplikacji ten model jest faktycznie wspierany przez widok w bazie danych. Jednak w trakcie testu chciałbym traktować to jako tabelę i móc tam wstawiać dane testowe.
Nie działa dla Django 1.11 (ponieważ będzie używał migracji do utworzenia testowej bazy danych, a po definicji twojego modelu ustawi się 'managed = False'). Rozwiązanie zaproponowane w https://stackoverflow.com/a/37060122/462655 działa dla Django 1.11 – msonsona
FWIW to również nie działa w Django 1.10.7 (i prawdopodobnie całej serii 1.10.x, ale nie jestem pewien) . –
Aktualizacja pierwotnego pomysłu na testowanie jest dostępna na stronie https://dev.to/patrnk/testing-against-unmanaged-models-in-django – shadi