Модульное тестирование Django JSON View

Я пытаюсь написать несколько модульных тестов для некоторых представлений Django json_view, и у меня возникли проблемы с передачей json_string в представление. Вчера я опубликовал связанный вопрос о передаче строки json в представление Django из JS, проблема заключалась в том, что в моем JS я просто передавал строку json, где мне нужно было передать строку как атрибут объекта, потому что я не смог этого сделать, строка принималась в качестве ключа для результирующего запроса dict. Я' m снова имеет аналогичную проблему, за исключением того, что на этот раз она представляет собой модульный тест Django для Django View. Вот упрощенная версия моего кода, которая дает тот же результат.

class MyTestCase(TestCase):
    def setUp(self):
        self.u = User.objects.create_user('test','test','test')
        self.u.is_active = True
        self.u.save()
        self.client.login(username='test',password='test')

    def test_create_object_from_form(self):
        """Test the creation of the Instance from the form data."""
        import json
        json_string json.dumps({'resource':{'type':'book','author':'John Doe'}})
        print(json_string)
        response = self.client.post(reverse('ajax_view'),
                                    {'form':json_string},'json')
        self.assetNotContains(response,'error')

и представление выглядит следующим образом

@json_view
def ajax_view(request):
    """Process the incoming form data."""
    if request.method == 'POST':
        print(request.POST)
        form_data = json.loads(request.POST['form'])
        resource_data = form_data['resource']
        form = MyUserForm(resource_data)

        if form.is_valid():
        ...

Вот что производят два оператора печати при запуске теста. Json_string -

{"resource": {"type": "book", "author": "John Doe"}}

, а запрос выглядит так:

<QueryDict: {u'{\'form\': \'{"resource": {"type": "book", "author": "John Doe"}}\'}': [u'']}>

Я новичок в JS и ajax, поэтому не беспокойтесь о том, чтобы задеть мою гордость, ответ, вероятно, настолько близок, что может вскочить и укусить меня.

10
задан Serjik 19 December 2015 в 11:29
поделиться