- May 7, 2010
- testing test
- 3 (after 3 ratings)
I often find myself testing that the queryset returned by a method contains the instances I expect. I use a custom method, assertQuerysetEqual(), to test the equality of two querysets or lists::
def test_some_values(self): qs = get_user_list() self.assertQuerysetEqual(qs, [normal_user, super_user])
Makes it easy to test small querysets against lists whose values are known and expected.
1 2 3 4 5 6 7 8 9
from django.test import TestCase class BaseTestCase(TestCase): def assertQuerysetEqual(self, qs1, qs2): pk = lambda o: o.pk return self.assertEqual( list(sorted(qs1, key=pk)), list(sorted(qs2, key=pk)) )