初期化中にいくつかのカスタム アクセス許可を作成するアプリをテストしようとしています。これらは、データベースの作成直後に作成されます。
custom_permissions = getattr(settings,'SOMEAPP_PERMISSIONS',() )
def create_custom_permissions(sender, **kwargs):
ct, created = ContentType.objects.get_or_create(model = '',
app_label = 'some_app',
defaults = {'name':'some_app'})
for codename, name in custom_permissions:
perm = Permission.objects.get_or_create(codename = codename,
content_type__pk = ct.id,
name = name)
post_save.connect(create_custom_permissions, Permission)
オーバーライド設定について私が見つけることができるすべての議論は、 などに多少関連してoverride_settings
いwith self.settings
ます。しかし、TestCase 中に設定をオーバーライドすると、関数は既に実行されており、設定の変更はもちろん効果がありません。
@override_settings(SOMEAPP_PERMISSIONS = (('some_custom_permission','No Name'))
class TestCustomPermissions(TestCase):
fixtures = ['some_app_user_fixture.json']
urls = 'some_app.tests.test_urls'
def test_create_point_privileges(self):
""" check if all necessary privileges have been created """
Permission.objects.get(codename = 'some_custom_permission')
したがって、すべてのテストが失敗します。この特別な機能をテストするためだけに設定ファイルを使用するにはどうすればよいですか?それはデータベースの作成に関係していますか?