mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 04:20:12 +03:00
Add test for non-dotted source.
This commit is contained in:
parent
dc69e7692a
commit
5f259e5908
|
@ -312,6 +312,7 @@ class OrderingFilterModel(models.Model):
|
||||||
|
|
||||||
class OrderingFilterRelatedModel(models.Model):
|
class OrderingFilterRelatedModel(models.Model):
|
||||||
related_object = models.ForeignKey(OrderingFilterModel, related_name="relateds", on_delete=models.CASCADE)
|
related_object = models.ForeignKey(OrderingFilterModel, related_name="relateds", on_delete=models.CASCADE)
|
||||||
|
index = models.SmallIntegerField(help_text="A non-related field to test with", default=0)
|
||||||
|
|
||||||
|
|
||||||
class OrderingFilterSerializer(serializers.ModelSerializer):
|
class OrderingFilterSerializer(serializers.ModelSerializer):
|
||||||
|
@ -329,6 +330,7 @@ class OrderingDottedRelatedSerializer(serializers.ModelSerializer):
|
||||||
fields = (
|
fields = (
|
||||||
'related_text',
|
'related_text',
|
||||||
'related_title',
|
'related_title',
|
||||||
|
'index',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -497,8 +499,12 @@ class OrderingFilterTests(TestCase):
|
||||||
]
|
]
|
||||||
|
|
||||||
def test_ordering_by_dotted_source(self):
|
def test_ordering_by_dotted_source(self):
|
||||||
for obj in OrderingFilterModel.objects.all():
|
|
||||||
OrderingFilterRelatedModel.objects.create(related_object=obj)
|
for index, obj in enumerate(OrderingFilterModel.objects.all()):
|
||||||
|
OrderingFilterRelatedModel.objects.create(
|
||||||
|
related_object=obj,
|
||||||
|
index=index
|
||||||
|
)
|
||||||
|
|
||||||
class OrderingListView(generics.ListAPIView):
|
class OrderingListView(generics.ListAPIView):
|
||||||
serializer_class = OrderingDottedRelatedSerializer
|
serializer_class = OrderingDottedRelatedSerializer
|
||||||
|
@ -509,9 +515,17 @@ class OrderingFilterTests(TestCase):
|
||||||
request = factory.get('/', {'ordering': 'related_object__text'})
|
request = factory.get('/', {'ordering': 'related_object__text'})
|
||||||
response = view(request)
|
response = view(request)
|
||||||
assert response.data == [
|
assert response.data == [
|
||||||
{'related_title': 'zyx', 'related_text': 'abc'},
|
{'related_title': 'zyx', 'related_text': 'abc', 'index': 0},
|
||||||
{'related_title': 'yxw', 'related_text': 'bcd'},
|
{'related_title': 'yxw', 'related_text': 'bcd', 'index': 1},
|
||||||
{'related_title': 'xwv', 'related_text': 'cde'},
|
{'related_title': 'xwv', 'related_text': 'cde', 'index': 2},
|
||||||
|
]
|
||||||
|
|
||||||
|
request = factory.get('/', {'ordering': '-index'})
|
||||||
|
response = view(request)
|
||||||
|
assert response.data == [
|
||||||
|
{'related_title': 'xwv', 'related_text': 'cde', 'index': 2},
|
||||||
|
{'related_title': 'yxw', 'related_text': 'bcd', 'index': 1},
|
||||||
|
{'related_title': 'zyx', 'related_text': 'abc', 'index': 0},
|
||||||
]
|
]
|
||||||
|
|
||||||
def test_ordering_with_nonstandard_ordering_param(self):
|
def test_ordering_with_nonstandard_ordering_param(self):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user