Created
September 21, 2018 15:04
-
-
Save brechin/2b7e2d11a4e590369b61d5af07993689 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
from __future__ import unicode_literals | |
import random | |
from django.test import TestCase, Client | |
from filtertest.models import MyModel, AnotherModel | |
class TestFilter(TestCase): | |
def setUp(self): | |
for i in range(5): | |
mymodel = MyModel.objects.create(base=i) | |
for _ in range(i): | |
AnotherModel.objects.create(related=mymodel) | |
mymodel.save() | |
def test_data(self): | |
for mymodel in MyModel.objects.all(): | |
self.assertEqual(mymodel.base, mymodel.anothermodel_set.count()) | |
self.assertEqual(mymodel.count, mymodel.base) | |
self.assertEqual(mymodel.doubled, mymodel.base * 2) | |
def test_filter(self): | |
with self.assertNumQueries(1): | |
c = Client() | |
response = c.get('/filtertest/').json() | |
with self.assertNumQueries(1): | |
ordered_response = c.get('/filtertest/?order_by=-count').json() | |
self.assertNotEqual(response, ordered_response) | |
self.assertEqual(ordered_response, sorted(response, key=lambda m: m['count'], reverse=True)) | |
with self.assertNumQueries(6): | |
[m.as_dict() for m in MyModel.objects.all()] # Similar to how most serializers function |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment