Обновление render_to_response с помощью Mock - PullRequest
1 голос
/ 23 мая 2011

Я использую Mock , и я не могу корректно исправить функцию render_to_response в django.Например, следующий тест никогда не проходит:

    from django.test.client import Client
    from mock import patch
    import nose.tools as nt

    @patch('django.shortcuts.render_to_response')
    def test_should_fail(self, render_to_response):
        def assert_response(url, context, context_instance):
            nt.assert_false(True)
        render_to_response.side_effect = assert_response
        response = Client().get('/some/url/')

Что я делаю не так?

Обновление: Причина, по которой я хочу это сделать, заключается в том, что, на мой взгляд,, Я передаю ответ как:

form = SomeFormClass(label_suffix='')
return render_to_response('admin/send_info_message.html', {'form': form,}, context_instance=RequestContext(request))

В моем тесте я хочу проверить правильность вызова этих параметров, например:

 def assert_response(url, context, context_instance):
     nt.assert_equal('admin/survey_question.html', url)
     nt.assert_equal({'form': SomeForm()}, context)
     nt.assert_equal(RequestContext(response.request), context_instance)

 render_to_response.side_effect = assert_response

1 Ответ

2 голосов
/ 23 мая 2011

Во-первых, почему вы хотите это сделать?

Во-вторых, место, куда вы должны установить функцию, это место, где вы ее вызываете - то есть в модуле представлений, который обрабатывает соответствующий URL.Например:

@patch('myapp.views.render_to_response')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...