2017-05-16 19 views
0

documentationから次の例を使用する:Djangoのデータ移行に対してテストを実行するにはどうすればよいですか?

def combine_names(apps, schema_editor): 
    Person = apps.get_model("yourappname", "Person") 
    for person in Person.objects.all(): 
     person.name = "%s %s" % (person.first_name, person.last_name) 
     person.save() 

class Migration(migrations.Migration):  
    dependencies = [ 
     ('yourappname', '0001_initial'), 
    ]  
    operations = [ 
     migrations.RunPython(combine_names), 
    ] 

私はどのように作成し、データが正しく移行されていることを確認し、この移行に対してテストを実行するのでしょうか?

答えて

0

テストスイートが実行されているかどうかをテストしている初期の移行にraw if文を追加して、初期のデータを追加することができます。つまり、オブジェクトが最終版にあるかどうかを確認するテストを書くだけです。状態あなたがそれらでほしいちょうどあなたの条件は、生産との互換性があることを確認し、ここでpython manage.py testで動作します例です:

import sys 
if 'test in sys.argv: 
    # do steps to update your operations 

を、より「完全な」解決策については、この古いブログの記事は、いくつかの良い情報とより多くを持っていますインスピレーションの最新のコメント:

https://micknelson.wordpress.com/2013/03/01/testing-django-migrations/#comments

関連する問題