django-beginners-guide icon indicating copy to clipboard operation
django-beginners-guide copied to clipboard

Test cases failing with 404 error

Open ghost opened this issue 6 years ago • 1 comments

Hello!

I am following this guide and stumbled on an weird issue. The website works perfectly when i try it in the web browser. But it seems that all the test cases are failing with 404 error page not found (even though i can access everything myself via web browser). OS: Debian GNU/Linux 9.4 (stretch), Python: Python 3.5.3, Django: (2, 0, 7, 'final', 0). urls.py ####### from django.contrib import admin from django.urls import path, re_path from boards import views as board_views from django.conf.urls import url

urlpatterns = [ path('', board_views.home, name='home'), path('boards/int:pk/', board_views.board_topics, name='board_topics'), path('boards/int:pk/new/', board_views.new_topic, name='new_topic'), path('admin/', admin.site.urls), ] #######

####### views.py: from django.shortcuts import render, redirect, get_object_or_404 from django.http import HttpResponse from .models import Board, Topic, Post

def board_topics(request, pk): board = get_object_or_404(Board, pk=pk) return render(request, 'topics.html', {'board': board})

tests.py: class BoardTopicsTests(TestCase): def setUp(self): Board.objects.create(name='Django', description='Django board.')

def test_board_topics_view_success_status_code(self):
     url = reverse('board_topics', kwargs={'pk': 1})
     response = self.client.get(url)
     self.assertEquals(response.status_code, 200)

When i print the variables, i can see that DB object exists, but 404 page not found is returned: <QuerySet [<Board: Django>]> b'

Not Found

The requested URL /boards/1/ was not found on this server.

' 404

Thanks!

ghost avatar Jul 11 '18 16:07 ghost

Maybe you can try the follow python code.

class BoardTopicsTests(TestCase):
    def setUp(self):
        self.board = Board.objects.create(name='Linux',
                                          description='Linux board.')

    def test_board_topics_view_success_status_code(self):
        url = reverse('board_topics', kwargs={'pk': self.board.pk})
        response = self.client.get(url)
        self.assertEquals(response.status_code, 200)

mapsic avatar Apr 26 '19 09:04 mapsic