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

    #講談社 さんと一緒に、811万円(税別)の電子書籍セット作りましたので誰か買って下さい。ソーシャルゲーム会社の社長などにおすすめです。 https://t.co/b53PalKgzN
    2 週間, 5 日 前

  • ytyng

    ytyng @ytyng

    @VULTR 東京リージョン DDoS 受けて止まってるようですよ! 仕事にならない
    2 ヶ月, 3 週間 前

  • 漫画全巻ドットコム@ポイント最大15倍!

    漫画全巻ドットコム@ポイント最大15倍! @mangazenkan

    ytyng

    おはようございます!さぁ、いよいよ始まります!加藤浩次さん司会のがっちりマンデー!!が、はじまります!みなさん、うちの濱田、ダンディーが、映ります! https://t.co/YQj2zxafqe
    3 ヶ月, 3 週間 前