python - Problems using User model in django unit tests -


मेरे पास निम्न डीजेंगो टेस्ट केस है जो मुझे त्रुटियाँ दे रहा है:

  class MyTesting Unittest.TestCase): def सेटअप (स्वयं): self.u1 = User.objects.create (उपयोगकर्ता नाम = 'user1') self.up1 = UserProfile.objects.create (उपयोगकर्ता = self.u1) def testA (स्वयं):। .. def testB (स्वयं): ...  

जब मैं अपना परीक्षण चलाता हूं, testA सफलतापूर्वक पास हो जाता है, लेकिन testb से पहले शुरू होता है , मुझे निम्न त्रुटि मिलती है:

  IntegrityError: स्तंभ उपयोगकर्ता नाम अद्वितीय नहीं है  

यह स्पष्ट है कि यह self.u1 बनाने का प्रयास कर रहा है < / कोड> प्रत्येक परीक्षण के पहले और यह पाते हैं कि यह डेटाबेस में पहले से मौजूद है। मैं प्रत्येक टेस्ट केस के बाद ठीक से साफ कैसे कर सकता हूं ताकि बाद के मामलों को ठीक से चलाया जाए?

और यूनिट पर विधियों को प्रत्येक परीक्षण के पहले और बाद में कहा जाता है। परिभाषित विधि जो निर्मित उपयोगकर्ता को हटा देता है।

  वर्ग MyTesting (unittest.TestCase): def सेट अप (स्वयं): self.u1 = User.objects.create (उपयोगकर्ता नाम = 'user1') स्वयं। Up1 = UserProfile.objects.create (उपयोगकर्ता = self.u1) def testA (स्वयं): ... def टायरडाउन (स्वयं): self.up1.delete () self.u1.delete ()  

मैं सिग्नल का उपयोग करने की सलाह भी देता हूं जब तक कि आप वास्तव में प्रत्येक उपयोगकर्ता के लिए उपयोगकर्ता प्रोफ़ाइल मैन्युअल रूप से बनाना नहीं चाहते।

फ़ॉलो-अप टिप्पणी को हटाएं:

< जब Django किसी ऑब्जेक्ट को हटाता है, तो यह एसक्यूएल बाधा के व्यवहार को हटाए गए कैसैड पर अलग-अलग शब्दों में, किसी भी ऑब्जेक्ट में ऑब्जेक्ट पर इंगित करने वाली विदेशी कुंजी

अपने मामले में, उपयोगकर्ता प्रोफ़ाइल उपयोगकर्ता की तरफ इशारा कर रहा है ताकि आपको एक ही समय में प्रोफ़ाइल को हटाने के लिए उपयोगकर्ता को हटाना चाहिए। ।


Comments