मैं इस प्रकारकी तुलना क्वेरीसमूहों testcase
def simple_view(request):
documents = request.user.document_set.all()
return render(request, 'simple.html', {'documents': documents})
ऊपर दृश्य परीक्षण करने के लिए अपने परीक्षण के मामले में मैं निम्न विधि जो त्रुटियों बाहर है एक बहुत ही सरल दृष्टिकोण है।
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
# ...
मुझे जो त्रुटि मिली है वह AssertionError: False is not true
है। मैंने दोनों क्वेरीसेट प्रिंट करने का प्रयास किया है और दोनों बिल्कुल समान हैं। यह False
क्यों वापस आएगा जब दोनों वस्तुएं समान होंगी? कोई विचार ?
वर्तमान में इस पर काबू पाने के लिए, मैं जाँच लंबाई की एक बुरा हैक उपयोग कर रहा हूँ इस प्रकार है:
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
yup, बस समाधान मिला। धन्यवाद। – Amyth
या मामूली अधिक संक्षेप में self.assertEqual (सूची (डीएस 1), सूची (डीएस 2)) – igniteflow