¿Cómo pruebo que Django QuerySets sea igual?

Estoy tratando de probar mis puntos de vista Django. Esta vista pasa un QuerySet a la plantilla:

def merchant_home(request, slug):
  merchant = Merchant.objects.get(slug=slug)
  product_list = merchant.products.all()
  return render_to_response('merchant_home.html',
                            {'merchant': merchant,
                            'product_list': product_list},
                            context_instance=RequestContext(request))

y prueba:

  def test(self):
    "Merchant home view should send merchant and merchant products to the template"
    merchant = Merchant.objects.create(name='test merchant')
    product = Product.objects.create(name='test product', price=100.00)
    merchant.products.add(product)

    test_client = Client()
    response = test_client.get('/' + merchant.slug)
    # self.assertListEqual(response.context['product_list'], merchant.products.all())
    self.assertQuerysetEqual(response.context['product_list'], merchant.products.all())

EDITAR estoy usandoself.assertQuerysetEqual en lugar deself.assertListEqual. Desafortunadamente, esto todavía no funciona, y el terminal muestra esto:['<Product: Product object>'] != [<Product: Product object>]

assertListEqual plantea'QuerySet' object has no attribute 'difference' yassertEqual Tampoco funciona, aunqueself.assertSetEqual(response.context['product_list'][0], merchant.products.all()[0]) pasa

Supongo que esto se debe a que los QuerySets son objetos diferentes a pesar de que contienen las mismas instancias del modelo.

¿Cómo pruebo que dos QuerySets contengan los mismos datos? ¿Incluso estoy probando esto correctamente? Este es mi cuarto día de aprendizaje de Django, así que me gustaría conocer las mejores prácticas, si es posible. Gracias.

Respuestas a la pregunta(6)

Su respuesta a la pregunta