Skip to content

Commit

Permalink
Created tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Szymon-Budziak committed Sep 12, 2023
1 parent 02272bc commit b9ffcdb
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ <h2>Author: {{ post.author.username }}</h2>
</div>
{% endif %}
{% if user == post.author %}
<a href="{% url 'post_edit' abcde=post.pk %}">EDIT</a>
<a href="{% url 'post_edit' pk=post.pk %}">EDIT</a>
{% endif %}
<h3>Title: {{ post.title }}</h3>
<p>{{ post.text }}</p>
Expand Down
69 changes: 68 additions & 1 deletion Django/Group_3/1_Django_tutorial/blog/tests.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,70 @@
from django.test import TestCase
from django.contrib.auth.models import User
from django.utils import timezone
from django.urls import reverse

# Create your tests here.
from .models import Post


class PostModelTest(TestCase):
def setUp(self) -> None:
self.user = User.objects.create_user(
username='testuser',
password='testpassword',
email='testuser@ex.com'
)

self.post = Post.objects.create(
author=self.user,
title='Test title',
text='Test text',
)

def test_post_creation(self):
self.assertEqual(self.post.author, self.user)
self.assertEqual(self.post.title, 'Test title')
self.assertEqual(self.post.text, 'Test text')
self.assertTrue(self.post.created_date <= timezone.now())
self.assertIsNone(self.post.published_date)

def test_publish_method(self):
self.post.publish()

self.assertIsNotNone(self.post.published_date)
self.assertTrue(self.post.published_date <= timezone.now())
self.assertTrue(self.post.created_date <= self.post.published_date)

def test_str_method(self):
self.assertEqual(str(self.post), 'Test title')


class PostListTest(TestCase):
def setUp(self) -> None:
self.user = User.objects.create_user(
username='testuser',
password='testpassword',
email='testuser@ex.com'
)

self.post = Post.objects.create(
author=self.user,
title='Test post',
text='Test text'
)

def test_post_list_view_with_published_post(self):
self.post.publish()

response = self.client.get(reverse('post_list'))

self.assertEqual(response.status_code, 200)
self.assertIn('Test post', response.content.decode())
self.assertContains(response, 'Test post')
self.assertIn('Test text', response.content.decode())

def test_post_list_view_with_unpublished_post(self):
response = self.client.get(reverse('post_list'))

self.assertEqual(response.status_code, 200)
self.assertNotIn('Test post', response.content.decode())
self.assertNotIn('Test text', response.content.decode())
2 changes: 1 addition & 1 deletion Django/Group_3/1_Django_tutorial/blog/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
path('', views.post_list, name='post_list'),
path('post/<int:pk>/', views.post_detail, name='post_detail'),
path('post/new/', views.post_new, name="post_new"),
path('post/edit/<int:abcde>/', views.post_edit, name='post_edit')
path('post/edit/<int:pk>/', views.post_edit, name='post_edit')
]
4 changes: 2 additions & 2 deletions Django/Group_3/1_Django_tutorial/blog/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ def post_new(request):
return render(request, 'blog/post_new.html', {'form': form})


def post_edit(request, abcde):
post = get_object_or_404(Post, pk=abcde)
def post_edit(request, pk):
post = get_object_or_404(Post, pk=pk)
if request.method == 'POST':
form = PostForm(request.POST, instance=post)
if form.is_valid():
Expand Down

0 comments on commit b9ffcdb

Please sign in to comment.