2012-01-27 5 views
0

動的応答(GitHubで利用可能)と呼ばれるdjangoプラグインのテストを作成しようとしていますが、いくつか問題があります。モックを使用して私はrender_to_responseのような特定のDjangoメソッドをモックしようとしています(私はdjangoをテストするつもりはありませんが)そうしようとすると、settings.pyを見つけることができないというエラーメッセージが表示されます。これは他のプロジェクトで使用されるプラグインではなく、プロジェクト自体ではありません。私は次のコードを試しました:プラグイン用Djangoを嘲笑:settings.pyを見つけることができません

class ResponseTest (unittest.TestCase): 

    @patch('dynamicresponse.response.render_to_response') 
    def test_is_testframework_working(self, render_to_response): 
     from dynamicresponse.response import SerializeOrRender 
     SerializeOrRender() 

これは、エラーメッセージを示しています。 HttpResponse、HttpRedirectは、これらのエラーをスローしませんスタブ...

には、次のスタックトレースに

Response (unittest.loader.ModuleImportFailure) ... ERROR 

====================================================================== 
ERROR: response (unittest.loader.ModuleImportFailure) 
---------------------------------------------------------------------- 
ImportError: Failed to import test module: response 
Traceback (most recent call last): 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.py", line 252, in _find_tests 
    module = self._get_module_from_name(name) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.py", line 230, in _get_module_from_name 
    __import__(name) 
    File "/Users/skinney/Workspace/django-dynamicresponse/tests/response.py", line 5, in <module> 
    class ResponseTest (unittest.TestCase): 
    File "/Users/skinney/Workspace/django-dynamicresponse/tests/response.py", line 7, in ResponseTest 
    @patch('dynamicresponse.response.render_to_response') 
    File "/Users/skinney/Workspace/django-dynamicresponse/tests/mock.py", line 720, in patch 
    target = _importer(target) 
    File "/Users/skinney/Workspace/django-dynamicresponse/tests/mock.py", line 514, in _importer 
    thing = _dot_lookup(thing, comp, import_path) 
    File "/Users/skinney/Workspace/django-dynamicresponse/tests/mock.py", line 503, in _dot_lookup 
    __import__(import_path) 
    File "/Users/skinney/Workspace/django-dynamicresponse/dynamicresponse/response.py", line 3, in <module> 
    from django.shortcuts import render_to_response 
    File "/Library/Python/2.7/site-packages/django/shortcuts/__init__.py", line 10, in <module> 
    from django.db.models.manager import Manager 
    File "/Library/Python/2.7/site-packages/django/db/__init__.py", line 14, in <module> 
    if not settings.DATABASES: 
    File "/Library/Python/2.7/site-packages/django/utils/functional.py", line 276, in __getattr__ 
    self._setup() 
    File "/Library/Python/2.7/site-packages/django/conf/__init__.py", line 40, in _setup 
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE) 
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined. 


---------------------------------------------------------------------- 
Ran 1 test in 0.000s 

FAILED (errors=1) 
+0

エラーメッセージ/トレースバックを投稿できますか? – Banjer

+0

コメントを追加しました。 –

+0

ダイナミックレスポンスのサンプルプロジェクトの一環として単体テストを作成しました... –

答えて

0

を与えるあなたは、独自の設定ファイルを持つ(何でも、実際のまたはダミー)任意のプロジェクトなしでDjangoのアプリケーションをテストすることはできません。

関連する問題