diff --git a/.gitignore b/.gitignore index 490cffc..b51862f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ __pycache__/ .DS_Store *.py[cod] *.swp +*.py.save /.* !/.gitignore diff --git a/README.md b/README.md index 2cf4f11..7515091 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ # python manage.py runserver -# python manage.py migrate \ No newline at end of file +# python manage.py migrate + +#DOUBT: tests.py -> 'href="{0}"'.format(homepage_url) what does "{0}" mean? \ No newline at end of file diff --git a/boards/admin.py b/boards/admin.py index 13be29d..28489b0 100644 --- a/boards/admin.py +++ b/boards/admin.py @@ -4,3 +4,8 @@ from django.contrib import admin # Register your models here. +from django.contrib import admin +from .models import Board + +admin.site.register(Board) + diff --git a/boards/tests.py b/boards/tests.py index e5fbc14..28c3dfb 100644 --- a/boards/tests.py +++ b/boards/tests.py @@ -1,14 +1,49 @@ # -*- coding: utf-8 -*- from django.urls import reverse, resolve from django.test import TestCase -from .views import home +from .views import home, board_topics +from .models import Board +from django.db import models + + class HomeTests(TestCase): - def test_home_view_status_code(self): + def setUp(self): + self.board = Board.objects.create(name='DjangoTest', description='This is another django test') url = reverse('home') - response = self.client.get(url) - self.assertEquals(response.status_code, 200) + self.response = self.client.get(url) + + def test_home_view_status_code(self): + self.assertEquals(self.response.status_code, 200) def test_home_url_resolves_home_view(self): view = resolve('/homepage/') self.assertEquals(view.func, home) + + def test_home_view_contains_link_to_topics_page(self): + board_topics_url = reverse('board_topics', kwargs={'pk': self.board.pk}) + self.assertContains(self.response, 'href="{0}"'.format(board_topics_url)) + +class BoardTopicsTests(TestCase): + def setUp(self): + Board.objects.create(name='Django_test', description='Django board to test') + + 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) + + def test_board_topics_view_not_found_status_code(self): + url = reverse('board_topics', kwargs={'pk': 99}) + response = self.client.get(url) + self.assertEquals(response.status_code, 404) + + def test_board_topics_url_resolves_board_topics_view(self): + view = resolve('/boards/1/') + self.assertEquals(view.func, board_topics) + + def test_board_topics_view_contains_link_back_to_homepage(self): + homepage_url = reverse('home') + board_topics_url = reverse('board_topics', kwargs={'pk': 1}) + response = self.client.get(board_topics_url) + self.assertContains(response, 'href="{0}"'.format(homepage_url)) diff --git a/boards/views.py b/boards/views.py index d235c4f..d87efec 100644 --- a/boards/views.py +++ b/boards/views.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.shortcuts import render +from django.shortcuts import render, get_object_or_404 # Create your views here. from django.http import HttpResponse @@ -11,3 +11,7 @@ def home(request): boards = Board.objects.all() return render(request, 'home.html', {'boards': boards}) + +def board_topics(request, pk): + board = get_object_or_404(Board, pk=pk) + return render(request, 'topics.html', {'board': board}) diff --git a/initial b/initial deleted file mode 100644 index e69de29..0000000 diff --git a/myproject/urls.py b/myproject/urls.py index 3f9af3b..943d5a1 100644 --- a/myproject/urls.py +++ b/myproject/urls.py @@ -19,6 +19,7 @@ from boards import views urlpatterns = [ - url(r'^homepage/$',views.home,name='home'), + url(r'^homepage/$', views.home, name='home'), + url(r'^boards/(?P\d+)/$', views.board_topics, name='board_topics'), url(r'^admin/', admin.site.urls), ] diff --git a/templates/home.html b/templates/home.html index cebafa9..8356e06 100644 --- a/templates/home.html +++ b/templates/home.html @@ -10,10 +10,10 @@ - - +
+ - + @@ -23,11 +23,11 @@ {% for board in boards %} - - + + {% endfor %} diff --git a/templates/topics.html b/templates/topics.html new file mode 100644 index 0000000..b4f6524 --- /dev/null +++ b/templates/topics.html @@ -0,0 +1,16 @@ +{% load static %} + + + + {{ board.name }} + + + +
+ +
+ + \ No newline at end of file
Board --------------------Board Posts Topics Last Post
- {{ board.name }}
- {{ board.description }} + {{ board.name }} + {{ board.description }}
0000