#django
Вопрос:
У меня есть простое представление для пересчета значений (g -> kg) в форме django, чтобы добавить данные внутрь представления и просто пересчитать их.
Теперь я хочу протестировать такое представление, чтобы присвоить ему значение и сравнить «вывод», как мне его протестировать. Вот сам код представления:
def weight_converter(request):
if request.method == 'POST':
form = Adder(request.POST)
if form.is_valid():
try:
value_in_g = int(form.cleaned_data['added_data'])
result_kg = value_in_g/1000
return render(request, 'weight_converter.html',
{'result': result_kg, 'initial_value': value_in_g,})
except ValueError as e:
e.message = 'Enter the number, not the string'
return render(request, 'weight_converter.html', {'message': e.message})
else:
form = Adder()
return render(request, 'weight_converter.html', {'form': form})
Сработает ли что-то подобное?
def test_weightconverter_view_calculation(self):
response = self.client.get('/weight_converter/', {'value_in_g': '1234'})
self.assertEqual(response.context['result'], 1.234)
Заранее спасибо за любые советы! )
Ответ №1:
Вы делаете запрос GET, а не запрос POST, и result
он указан только с запросом POST и, вероятно, с added_data
ключом as:
def test_weightconverter_view_calculation(self):
response = self.client.post('/weight_converter/', {'added_data': '1234'})
self.assertEqual(response.context['result'], 1.234)
Однако здесь, вероятно, было бы более разумно выполнять вычисления с помощью запроса GET, поскольку при преобразовании граммов в килограммы нет побочных эффектов.