I have a very simple view as follows
def simple_view(request):
documents = request.user.document_set.all()
return render(request, 'simple.html', {'documents': documents})
To test the above view in my test case i have the following method which errors out.
Class SomeTestCase(TestCase):
# ...
def test_simple_view(self):
# ... some other checks
docset = self.resonse.context['documents']
self.assertTrue(self.user.document_set.all() == docset) # This line raises an error
# ...
The error i get is AssertionError: False is not true
.
I have tried printing both the querysets and both are absolutely identical. Why would it return False
when both the objects are identical ? Any Ideas ?
Currently to overcome this, I am using a nasty hack of checking lengths as follows:
ds1, ds2 = self.response.context['documents'], self.user.document_set.all()
self.assertTrue(len([x for x in ds1 if x in ds2]) == len(ds1) == len(ds2)) # Makes sure each entry in ds1 exists in ds2
question from:
https://stackoverflow.com/questions/65941861/why-mymodel-objects-none-mymodel-objects-none-returns-false-in-django-she 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…