You mean that after you make the changes the tutorial gives you the test still fails? It is supposed to fail the first time before you make the changes.
On Thursday, January 19, 2017 at 8:21:38 PM UTC+1, Vpeguero wrote:
-- On Thursday, January 19, 2017 at 8:21:38 PM UTC+1, Vpeguero wrote:
I'm currently working through the django tutorial for v1.10. On part 5 the final test that is created is raising an assertion error as follows:Creating test database for alias 'default'....F........============================================================ ========== FAIL: test_detail_view_with_a_past_question (polls.tests. QuestionIndexDetailTests) ------------------------------------------------------------ ---------- Traceback (most recent call last):File "/home/dufort/code/django-tutorials/mysite/polls/tests. py", line 122, in test_detail_view_with_a_past_ question self.assertContains(response, past_question.question_text)File "/tmp/bash-venv/8918/lib/python2.7/site-packages/ django/test/testcases.py", line 382, in assertContains self.assertTrue(real_count != 0, msg_prefix + "Couldn't find %s in response" % text_repr)AssertionError: Couldn't find 'Past Question.' in response------------------------------------------------------------ ---------- Ran 10 tests in 0.045sFAILED (failures=1)Destroying test database for alias 'default'...The following is the specific test being usedimport datetimefrom django.utils import timezonefrom django.test import TestCasefrom django.urls import reversefrom .models import Question
...def create_question(question_text, days):"""Creates a question with the given 'question_text' and published thegiven number of 'days'offset to now (negative for question published in the past,positive for questions that have yet to be published."""time = timezone.now() + datetime.timedelta(days=days)return Question.objects.create(question_text=question_text, pub_date=time) ...class QuestionIndexDetailTests(TestCase):
...def test_detail_view_with_a_past_question(self): """The detail view of a question with a pub_date in the past shoulddisplay the question's text."""past_question = create_question(question_text='Past Question.', days=-5) url = reverse('polls:detail', args=(past_question.id,))response = self.client.get(url)self.assertContains(response, past_question.question_text)Views:from django.shortcuts import render, get_object_or_404from django.http import HttpResponseRedirectfrom django.urls import reversefrom django.views import genericfrom django.utils import timezonefrom .models import Choice, Question# Create your views here.class IndexView(generic.ListView):template_name = 'polls/index.html'context_object_name = 'latest_question_list'def get_queryset(self):"""Return the last five published questions(not including those set to be published in the future.)"""return Question.objects.filter(pub_date__lte=timezone.now()).order_by('-pub_date')[:5]class DetailView(generic.DetailView): model = Questiontemplate_name = 'polls/detail.html'def get_queryset(self):"""Excludes any questions that aren't published yet."""return Question.objects.filter(pub_date__lte=timezone.now()) class ResultsView(generic.DetailView): model = Questiontemplate_name = 'polls/results.html'def vote(request, question_id):question = get_object_or_404(Question, pk=question_id)try:selected_choice = question.choice_set.get(pk=request.POST['choice']) except (KeyError, Choice.DoesNotExist):return render(request, 'polls/detail.html', {'question': question,'error_message': "You didn't select a choice.",})else:selected_choice.votes += 1selected_choice.save()return HttpResponseRedirect(reverse('polls:results', args=(question.id,))) I've decided to move forward with the tutorials. I am having trouble identifying if this is a bug in the tutorial itself or if there is just something missing in my code that is causing this error.
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/ad44f439-6248-449b-a88b-ec562afe9cea%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment