2017-01-30 32 views
2

pytest-djangoがテストデータベースを作成するときにPostgres拡張機能をインストールしたいと思います。私はこれをうまく動作させるためにconftest.pyを手に入れましたが、私は立ち往生しています。pytest-djangoでpostgresデータベースを設定するには?

マイconftest.pyは私のプロジェクト(manage.pyと同じディレクトリ)のトップレベルであり、含まれています

from django.db import connection 
import pytest_django 
@pytest.fixture(scope='session') 
def django_db_setup(*args, **kwargs): 
    pytest_django.fixtures.django_db_setup(*args, **kwargs) 
    cursor = connection.cursor() 
    cursor.execute("create extension pg_trgm") 

しかし、私はそれを実行したときに、私が取得:

_pytest.vendored_packages.pluggy.PluginValidationError: unknown hook 'pytest_django' in plugin <module 'conftest' from '/path/to/my/conftest.py'> 

答えて

2

pre_migrateシグナルを使用することができます。たとえば:

from django.db.models.signals import pre_migrate 
from django.apps import apps 

def app_pre_migration(sender, app_config, **kwargs): 

    cur = connection.cursor() 
    cur.execute('CREATE EXTENSION IF NOT EXISTS pg_trgm;') 

pre_migrate.connect(app_pre_migration, sender=apps.get_app_config('app')) 

私は、これはあなたを助けることができる願っています。

+0

ありがとうございます@lefterisnik、これはうまく動作しています:-) – rmoorman

関連する問題