管理パネルでユーザービューのアクセス許可をテストするためのカスタムページツリーを生成しようとしています。Wagtailユニットテストで使用するテストフィクスチャを生成する正しい方法は何ですか?
./manage.py dumpdata --natural-foreign --natural-primary --indent 4 > test.json
となるようにテストケースで治具を使用して:私は、次のコマンドでファイルにフィクスチャを投棄しています。このテストを実行
class MyTest(TestCase, WagtailTestUtils):
fixtures = ['test.json']
def test_my_code(self):
# More code....
次のエラーが返されます。
File "/Users/jchau/.pyenv/versions/2.7.8/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 323, in execute
return Database.Cursor.execute(self, query, params)
DeserializationError: Problem installing fixture '/Users/jchau/Documents/wagtail/wagtail/tests/testapp/fixtures/test_group_restrictions.json': no such table: auth_user
テストデータの形式が正しくないようです。 Wagtailで使用するカスタムテストフィクスチャを生成するための方法はありますか?
注:これらのコマンドは、Wagtail 1.8のバニラインストールに対して実行されています。私はカスタムモデルやデータ型を作成していないか、または何らかの変更を加えていないので、既存のデータだけがサイトとページで構成されています。
これはauth_userテーブルでエラーを修正したようですが、UNIQUE制約がwagtailcore_page.pathに失敗する問題があります。他のモデルとの違いはありますか?または、auth_userテーブルは唯一のテーブルですか? – jeffreyckchau
カスタムユーザーテーブルは、データベースのレベルで標準ではないテストセットアップ内の唯一のものだと私は信じています。ページパスで何が失敗するかわからない - それについて新しい質問を開く価値がある。 (あなたのフィクスチャがページレコード上に一意でない 'パス'フィールドを含んでいれば、何かが間違って作成されてしまった...) – gasman
私は実際には最初のデータ移行の1つと衝突していると考えました。私はそれ以来、リポジトリに、テスト中にマイグレーションを無効にしたり、最初のページ/サイトのデータを削除したりして、djangoの 'dumpdata'コマンドから独自のフィクスチャを使うことができるという問題を開いた – jeffreyckchau