maxclax
@maxclax

Что за пробел в тестах?

Тестирую templatetags следующим кодом:

from django.test import TestCase
from django.template import Template, Context
from django.shortcuts import render_to_response
from news.models import News


class NewsTemplatetagsTest(TestCase):
    TEMPLATE = Template("{% load news %} {% last %}")

    def test_show_last(self):
        html = render_to_response('news/last.html', {'data': News.objects.get_list(limit=3)})

        rendered = self.TEMPLATE.render(Context({}))

        self.assertEquals(html.content.decode('utf8'), rendered)


Сам templatetags
from django import template
from news.models import News

register = template.Library()


@register.inclusion_tag('news/last.html', takes_context=True)
def last(context):
    return {'data': News.objects.get_list(limit=3)}


в результате в начале контента rendered стоит пробел, даже если сделать файл шаблона пустым.


self.assertEquals(html.content.decode('utf8'), rendered)
AssertionError: '[<News: title_49>, <News: title_48>, <News: title_47>]' != ' [<News: title_49>, <News: title_48>, <News: title_47>]'



self.assertEquals(html.content.decode('utf8'), rendered)
AssertionError: '' != ' '


Подскажите, где косяк? Может не верно провожу тест?
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
un1t
@un1t
"{% load news %} {% last %}"
У тебя между "{% load news %}" и "{% last %}" есть пробел.

P.S. Тест у тебя какой-то бессмысленный, т.к. код тэга и код теста делают одно и тоже. Это как тестировать assert foo() == foo(). Ну да этот assert врядли когда нибудь сломается, даже если удалить весь код функции, но в чем смысл не понятно. Очень желательно, чтобы тест ничего не знал о реализации.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы