Reputation: 2332
I have such serializer
class ActResultSerializer(serializers.Serializer):
actions = serializers.SerializerMethodField()
def get_actions(self, obj):
return Actions.objects.filter(type='solution').values_list('code', flat=True)
Here is my test case
def test_return_to_provider(self):
response = self.client.get('/acts/')
self.assertEqual(response.status_code, 200)
queryset = Act.objects.filter(deleted=False)
self.assertEqual(
len(response.data),
queryset.count()
)
self.assertEqual(response.data, ActResultSerializer(queryset, many=True).data)
The problem is, that last assertEqual
fails, because serializer data returns ('actions', <QuerySet []>)
. How can I evaluate that QuerySet to compare response and serializer datas?
Upvotes: 1
Views: 187
Reputation: 476614
Your get_actions
returns an empty QuerySet
, not a list, so it will convert it to a string. You can use list(…)
to convert it to a list of strings:
def get_actions(self, obj):
return list(
Actions.objects.filter(type='solution').values_list('code', flat=True)
)
Upvotes: 1