2017-05-08 3 views
0

は私がデータ移行で作成したシステムのユーザーを持って存在していません。シェルにドロップすると、ユーザーは期待どおりに存在します。私は私のテストスイートを実行するときしかし、私はのエラーを取得する:ユーザーは

Traceback (most recent call last): 
    File "/home/user/.virtualenvs/admin/local/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName 
    addr.filename, addr.module) 
    File "/home/user/.virtualenvs/admin/local/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath 
    return self.importFromDir(dir_path, fqname) 
    File "/home/user/.virtualenvs/admin/local/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir 
    mod = load_module(part_fqname, fh, filename, desc) 
    File "/home/user/admin_api/scheduler/tests/test_tasks.py", line 18, in <module> 
    from scheduler.tasks import (floor_datetime_to_minutes, save_task_details, 
    File "/home/user/admin_api/scheduler/tasks.py", line 48, in <module> 
    SYSTEM_USER = User.objects.get(username='system') 
    File "/home/user/.virtualenvs/admin/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method 
    return getattr(self.get_queryset(), name)(*args, **kwargs) 
    File "/home/user/.virtualenvs/admin/local/lib/python2.7/site-packages/django/db/models/query.py", line 385, in get 
    self.model._meta.object_name 
DoesNotExist: User matching query does not exist. 

ジャンゴ1.10、Pythonの2.7

答えて

1

テストは常に空のデータベースで始まります。デフォルトのユーザーを作成する移行が実行される前に、あなたのtasks.pyがインポートされているようです。

しかし、このような理由から、モジュールレベルでのクエリのような操作は行わないでください。 tasks.pyの行を関数に移動し、必要に応じて呼び出します。

+0

Derp。私はそれを知っていた。ありがとう! – thumbtackthief