Как проверить мою функцию AJAX, определенную в моем файле представлений? - PullRequest
0 голосов
/ 17 апреля 2019

Я использую Django и Python 3.7 и пытаюсь протестировать AJAX-запрос из представления, расположенного по адресу web / views / tax_calculator.py

# Basic function that serves the default page
def get(request):
    return render(request, "web/template/tax_calculator.html", {})


# This is an Ajax call that will calculate the overall taxes you pay for
# an S-Corp vs a sole proprietorship
def post(request):
    state = request.GET.get('state', None)
    gross_income = request.GET.get('gross', None)
    owner_salary = request.GET.get('salary', None)

    data = {
        'sole_pr_taxes': TaxCalculatorService.calc_sole_pr_taxes(state, gross_income),
        's_corp_taxes': TaxCalculatorService.calc_s_corp_taxes(state, gross_income, owner_salary),
    }
    return JsonResponse(data)

Вот мой тестовый файл, расположенный по адресу web / tests / test_views.py

from django.test.client import Client
import json
from web.models import *

c = Client()


class ViewTests(TestCase):

    # Basic test to verify we can get valid return data
    def test_calculate_tax(self):
        state = 'MN'
        gross = 100000
        salary = 75000
        json_data = json.dumps({'state': state,
                                'gross': gross,
                                'salary': salary})

        response = c.post('/content/vote/', json_data,
                          content_type='application/json',
                          HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        self.assertEqual(response.status_code, 302)  # this is OK.
        print(response.content)
        self.assertEqual(response.content, 2)

Это приводит к ошибке ниже. Что еще мне нужно сделать, чтобы мой тест понял мой запрос Ajax?

======================================================================
ERROR: test_calculate_tax (web.tests.test_views.ViewTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/davea/Documents/workspace/myproject/web/tests/test_views.py", line 20, in test_calculate_tax
    response = c.post('/content/vote/', json_data,
AttributeError: 'Client' object has no attribute 'post'

----------------------------------------------------------------------
Ran 2 tests in 0.010s
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...