aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/test_renderers.py
diff options
context:
space:
mode:
authorMathieu Pillard2014-01-17 13:05:10 +0100
committerMathieu Pillard2014-01-17 13:05:10 +0100
commitf034cb595ae0b9091a9eb68a2b583a320ef39c4e (patch)
tree8dd389c3233fa722219a10bffa2deec748e20bd7 /rest_framework/tests/test_renderers.py
parent71c03b9db97edbde228777981de0ac7b664302de (diff)
downloaddjango-rest-framework-f034cb595ae0b9091a9eb68a2b583a320ef39c4e.tar.bz2
Encode django QuerySets to lists and not dicts in JSONEncoder
Diffstat (limited to 'rest_framework/tests/test_renderers.py')
-rw-r--r--rest_framework/tests/test_renderers.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/rest_framework/tests/test_renderers.py b/rest_framework/tests/test_renderers.py
index 2ae8ae18..fb33df2c 100644
--- a/rest_framework/tests/test_renderers.py
+++ b/rest_framework/tests/test_renderers.py
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
from decimal import Decimal
from django.core.cache import cache
+from django.db import models
from django.test import TestCase
from django.utils import unittest
from django.utils.translation import ugettext_lazy as _
@@ -34,6 +35,10 @@ expected_results = [
]
+class DummyTestModel(models.Model):
+ name = models.CharField(max_length=42, default='')
+
+
class BasicRendererTests(TestCase):
def test_expected_results(self):
for value, renderer_cls, expected in expected_results:
@@ -276,6 +281,20 @@ class JSONRendererTests(TestCase):
ret = JSONRenderer().render(_('test'))
self.assertEqual(ret, b'"test"')
+ def test_render_queryset_values(self):
+ o = DummyTestModel.objects.create(name='dummy')
+ qs = DummyTestModel.objects.values('id', 'name')
+ ret = JSONRenderer().render(qs)
+ data = json.loads(ret.decode('utf-8'))
+ self.assertEquals(data, [{'id': o.id, 'name': o.name}])
+
+ def test_render_queryset_values_list(self):
+ o = DummyTestModel.objects.create(name='dummy')
+ qs = DummyTestModel.objects.values_list('id', 'name')
+ ret = JSONRenderer().render(qs)
+ data = json.loads(ret.decode('utf-8'))
+ self.assertEquals(data, [[o.id, o.name]])
+
def test_render_dict_abc_obj(self):
class Dict(MutableMapping):
def __init__(self):