Skip to content

Commit 6ad167a

Browse files
committed
At least, we have a few tests now!
1 parent 4efb15c commit 6ad167a

File tree

4 files changed

+42
-3
lines changed

4 files changed

+42
-3
lines changed

testproj/README

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@
44
4. ./manage.py migrate
55
5. ./manage.py loaddata secretfiles
66
6. ./manage.py runserver
7+
8+
To run tests: ./manage.py test

testproj/testproj/testapp/models.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
from django.db import models
22
from django.utils import timezone
3+
from django.utils.encoding import python_2_unicode_compatible
34

45

6+
@python_2_unicode_compatible
57
class SecretFile(models.Model):
68
filename = models.CharField(max_length=255, blank=True, null=True)
79
order = models.IntegerField(blank=True, null=True)
810
size = models.PositiveIntegerField(blank=True, null=True)
911
created_on = models.DateTimeField(default=timezone.now)
1012
is_secret = models.BooleanField(default=False)
1113

12-
def __unicode__(self):
13-
return "#%d %s" % (self.pk, self.filename)
14+
def __str__(self):
15+
return "#%d %s" % (self.order, self.filename)

testproj/testproj/testapp/tests.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
from django.core.urlresolvers import reverse
2+
from django.test import TestCase, Client
3+
4+
from . import models
5+
6+
class IndexTest(TestCase):
7+
def setUp(self):
8+
self.client = Client()
9+
self.url = reverse('test_index')
10+
models.SecretFile.objects.create(filename='foo.txt', order=1, size=1024)
11+
models.SecretFile.objects.create(filename='bar.txt', order=2, size=512)
12+
13+
def test_index(self):
14+
response = self.client.get(self.url)
15+
self.assertContains(response, 'foo.txt')
16+
self.assertContains(response, 'bar.txt')
17+
18+
def test_sorting_direction(self):
19+
response = self.client.get(self.url, {'sort': 'order', 'dir': 'asc'})
20+
values = ['<SecretFile: #1 foo.txt>', '<SecretFile: #2 bar.txt>']
21+
self.assertQuerysetEqual(response.context['secret_files'], values)
22+
23+
response = self.client.get(self.url, {'sort': 'order', 'dir': 'desc'})
24+
values = ['<SecretFile: #2 bar.txt>', '<SecretFile: #1 foo.txt>']
25+
self.assertQuerysetEqual(response.context['secret_files'], values)
26+
27+
# Nothing wrong happens with an invalid direction and ASC is used
28+
response = self.client.get(self.url, {'sort': 'order', 'dir': 'NOT'})
29+
values = ['<SecretFile: #1 foo.txt>', '<SecretFile: #2 bar.txt>']
30+
self.assertQuerysetEqual(response.context['secret_files'], values)
31+
32+
def test_sorting_argument(self):
33+
# Nothing wrong happens with invalid sort argument
34+
response = self.client.get(self.url, {'sort': 'NOT EXISTING'})
35+
self.assertContains(response, 'foo.txt')

testproj/testproj/urls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
from testproj.testapp import views
44

55
urlpatterns = [
6-
url(r'^$', views.test_index),
6+
url(r'^$', views.test_index, name='test_index'),
77
url(r'^admin/', admin.site.urls),
88
]

0 commit comments

Comments
 (0)