2010-08-12 3 views
0

내 테스트가 장고롭 모듈을 통과하지 못하는 이유에 대해 혼란스러워합니다. 클래스 ExperimentTagsTest (TestCase에) : 여기 왜 장고급 테스트가 "NoReverseMatch : Reverse"opensearch "에 대해 인수가 '()'이고 키워드 인수가 '{}'으로 찾을 수 없습니다."

====================================================================== 
ERROR: testIntegrationWithRegisteredUser (django_lean.experiments.tests.test_tags.ExperimentTagsTest) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/site-packages/django_lean-0.15-py2.7.egg/django_lean/experiments/tests/test_tags.py", line 55, in testIntegrationWithRegisteredUser 
    client_factory=create_registered_user_client) 
    File "/usr/local/lib/python2.7/site-packages/django_lean-0.15-py2.7.egg/django_lean/experiments/tests/test_tags.py", line 71, in doTestIntegration 
    response = client.get(confirm_human_url) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/test/client.py", line 290, in get 
    response = self.request(**r) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/test/client.py", line 230, in request 
    response = self.handler(environ) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/test/client.py", line 74, in __call__ 
    response = self.get_response(request) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/core/handlers/base.py", line 142, in get_response 
    return self.handle_uncaught_exception(request, resolver, exc_info) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/core/handlers/base.py", line 181, in handle_uncaught_exception 
    return callback(request, **param_dict) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/views/defaults.py", line 24, in server_error 
    return http.HttpResponseServerError(t.render(Context({}))) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/template/__init__.py", line 173, in render 
    return self._render(context) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/test/utils.py", line 29, in instrumented_test_render 
    return self.nodelist.render(context) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/template/__init__.py", line 796, in render 
    bits.append(self.render_node(node, context)) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/template/__init__.py", line 809, in render_node 
    return node.render(context) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/template/loader_tags.py", line 125, in render 
    return compiled_parent._render(context) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/test/utils.py", line 29, in instrumented_test_render 
    return self.nodelist.render(context) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/template/__init__.py", line 796, in render 
    bits.append(self.render_node(node, context)) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/template/__init__.py", line 809, in render_node 
    return node.render(context) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/template/defaulttags.py", line 378, in render 
    raise e 
NoReverseMatch: Reverse for 'opensearch' with arguments '()' and keyword arguments '{}' not found. 

---------------------------------------------------------------------- 
Ran 1 test in 1736.834s 

는 테스트입니다 된 URL = 'django_lean.experiments.tests.urls'

def setUp(self): 
    self.experiment = Experiment(name="test_experiment") 
    self.experiment.save() 
    self.experiment.state = Experiment.ENABLED_STATE 
    self.experiment.save() 

    self.other_experiment = Experiment(name="other_test_experiment") 
    self.other_experiment.save() 
    self.other_experiment.state = Experiment.ENABLED_STATE 
    self.other_experiment.save() 
    self.mox = mox.Mox() 


def testIntegrationWithRegisteredUser(self): 
    def create_registered_user_client(i): 
     user = User(username="user%s" % i, email="user%[email protected]" % i) 
     user.set_password("password") 
     user.save() 

     client = Client() 

     if not client.login(username=user.username, password="password"): 
      raise Exception("login failure") 
     return client 
    self.doTestIntegration(
     url=reverse('django_lean.experiments.tests.views.experiment_test', 
        args=[self.experiment.name]), 
     client_factory=create_registered_user_client) 

def doTestIntegration(self, url, client_factory): 
    confirm_human_url = reverse('django_lean.experiments.views.confirm_human') 
    # confirm_human_url set to '/main-app/confirm_human/' during test 
    found_control = False 
    found_test = False 
    for i in range(100): 
     client = client_factory(i) 
     import pdb; pdb.set_trace() 
     response = client.get(confirm_human_url) # this is where the Client can't find the url 
     self.assertEquals(204, response.status_code) 
     response = client.get(url) 
     self.assertEquals(200, response.status_code) 
     in_test = "test" in response.content.lower() 
     in_control = "control" in response.content.lower() 
     self.assertTrue(in_test != in_control) 
     found_control = found_control or in_control 
     found_test = found_test or in_test 

    self.assertTrue(found_control) 
    self.assertTrue(found_test) 

이보기, django_lean.experiments.views.confirm_human입니다

@never_cache 
def confirm_human(request): 
    experiment_user = WebUser(request) 
    experiment_user.confirm_human() 
    return HttpResponse(status=204) 

마지막으로,이 django_lean.experiments.urls의 URL 패턴입니다 :

,536,913,632 10
urlpatterns = patterns('django_lean.experiments.views', 
    url(r'^goal/(?P<goal_name>.*)$', 'record_experiment_goal'), 
    url(r'^confirm_human/$', 'confirm_human') 
) 

나는 client.get 요청을 따르지 않는 이유를 알지 못합니다.

답변

1

업데이트 장고 - 원 소스에서 opensearch에 대한 참조를 찾을 수 없습니다. Django opensearch 플러그인을 사용하고 있습니까? 아니면 opensearch를 참조하는 다른 앱입니까? 프로젝트에서 opensearch을 검색해보십시오.

템플릿 중 하나가 인수 opensearch와 함께 {% url %} 태그를 사용하고 있음을 보인다 언뜻 원래 대답

. 적어도 그것은 오류 추적에서 다음 줄을 기반으로 의심되는 것입니다.

File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/template/__init__.py", line 809, in render_node 
    return node.render(context) 
    File "/usr/local/lib/python2.7/site-packages/Django-1.2.1-py2.7.egg/django/template/defaulttags.py", line 378, in render 
    raise e 

나는 장고가 희박한에 익숙하지 오전하지만 그들은 opensearch라는 이름의 URL이 있다면 나는 그것이 worrh 검사를 할 것이라 생각합니다.

+0

Opensearch는 앱에서 사용됩니다. 파이썬 셸에서 역순으로 ('opensearch') 할 수 있습니다. 그러나 테스트에서 reverse ('opensearch') *** NoReverseMatch : 인수 '()'및 키워드 인수 '{}'이 (가) 'opensearch'에 대해 역순으로 발견되었습니다. – BryanWheelock

관련 문제