Django managed = False なモデルをユニットテストするには

(コメント)

Django で、モデルの Meta: managed = False にすると、他の App からのユニットテストの時、create() などしようとすると

django.db.utils.ProgrammingError: (1146, "Table 'your_app.your_model' doesn't exist")

というエラーが出ます。

./manage.py inspectdb で作ったモデルをテストしようとする時、よく遭遇します。

その場合、

Simplifying the Testing of Unmanaged Database Models in Django | Caktus Group
このような回避策もありますが、

your_app/tests/__init__.py

import sys

if 'test' in sys.argv:
# テスト用
from ..models import YourModel

YourModel._meta.managed = True

tests/__init__.py にこう書くだけでも充分かな

現在未評価

コメント

最近のツイート

  • ytyng

    ytyng @ytyng

    HIS のベトナムのハロン湾クルーズのガイドさんが天然でシセロ(cv 岩崎ひろし )でクルーズ船内ざわついている。突然ハイテンションで歌い出したり高笑いしたり同じ言葉を連呼したり
    2 日, 15 時間 前

  • ytyng

    ytyng @ytyng

    漫画村閉鎖したので、僕らのサイト使ってくださいね。マンガが無料で読めます。スキマ。まだサーバ負荷には余裕があります! https://t.co/dTjQJZO1TP
    1 週間, 5 日 前

  • ytyng

    ytyng @ytyng

    エンジニアリング組織論への招待 https://t.co/FUqPgcUKWh めっちゃいい本だった。 ただしKindle版とまちがって紙の本が家に届いてて失敗した。
    2 週間, 2 日 前