python - Can't login a just-created user, in a Django test -


एक Django परीक्षण वर्ग में, self.client.login (...) वापस आ रहा है < कोड> गलत , और मुझे समझ में नहीं आता क्यों यह परीक्षण मॉड्यूल है

  "" विचारों के लिए टेस्ट "" "" django.contrib.auth.models से उपयोगकर्ता आयात करें। मॉडल्स से यूज़रप्रोफाइल आयात करें django.test आयात से TestCase TEST_USER = {" उपयोगकर्ता नाम ":" केर्मिट "," पासवर्ड ":" टाइमरक "," प्रथम_नाम ":" केर्मिट "," अंतिम_नाम ":" मेंढक "," जन्मदिन ": 1 9 55," ईमेल ":" kermit@muppets.com "} "उपयोगकर्ता नाम = उपयोगकर्ता (उपयोगकर्ता नाम = TEST_USER ['उपयोगकर्ता नाम]], पासवर्ड = TEST_USER [' '' '' '' '' पासवर्ड '], first_name = TEST_USER [' first_name '], last_name = TEST_USER [' last_name '], ईमेल = TEST_USER [' ईमेल ']) user.save () प्रोफ़ाइल = UserProfile (user_id = user.id, birth_year = TEST_USER [ 'जन्मदिन']) profile.save ()   

फ़ंक्शन जो प्रयोक्ता को लॉग इन करने का प्रयास करता है (यह एक ही फाइल का नीचे भाग है):

 < कोड> डीईफ़ test__view_for_logged_in_user (स्वयं): "" "लॉगिन" उपयोगकर्ता के लिए मुख्य जन्म-आंकड़े पृष्ठ पर अपेक्षित सामग्री की पुष्टि करें। "" "प्रिंट (" TEST_USER = "+ TEST_USER) did_login _succeed = self.client.login (उपयोगकर्ता नाम = TEST_USER ['उपयोगकर्ता नाम]], पासवर्ड = TEST_USER [' पासवर्ड ']) सिर्फ प्रिंट किए गए प्रयोक्ता प्रयोक्ता = उपयोगकर्ता.ऑब्जेक्ट.ऑल () प्रिंट ("वास्तव में डेटाबेस में कुल उपयोगकर्ता उपयोगकर्ता के लिए = "+ str (users.count ())): मुद्रित करें ('वास्तव में डाला गया उपयोगकर्ता:' + str (उपयोगकर्ता)) self.assertTrue (did_login_succeed) # फ़ेल्स #test यहां देखें   

जैसा कि आप डीबगिंग आउटपुट में देख सकते हैं, परीक्षण उपयोगकर्ता वास्तव में डाला जा रहा है:

  $ python manage.py test auth_lifecycle.test__views2 उपनाम 'डिफ़ॉल्ट' के लिए परीक्षण डेटाबेस बनाना .. TEST_USER = {'username': 'kermit', 'email': 'kermit@muppets.com', 'password': 'टाइमरक', 'जन्मदिन': 1955, 'last_name': 'द मेंढक', 'first_name ':' केर्मिट '} वास्तव में डेटाबेस में कुल उपयोगकर्ता = 1 वास्तव में डाला गया उपयोगकर्ता: केर्मिट एफ ============================= ========================================= असफल: test__view_for_logged_in_user (auth_lifecycle.test__views2.ViewTestCase ) ---------- -------------------------------------------------- ---------- Traceback (सबसे हाल कॉल पिछले): फ़ाइल "/home/jeffy/django_files/django_auth_lifecycle/auth_lifecycle/test__views2.py", रेखा 47, test__view_for_logged_in_user self.assertTrue (did_login_succeed) AssertionError में: झूठे यह सच नहीं है ----------------------------------------------- ----------------------- 0 9 0 9 में विफल 1 परीक्षा (विफलताओं = 1) उपनाम 'डिफ़ॉल्ट' के लिए टेस्ट डेटाबेस को नष्ट करना ...   

यह लॉगिन विफल क्यों है (लौट रहा है)?


यह मॉडल है

  "" "एक अतिरिक्त उपयोगकर्ता प्रोफ़ाइल को परिभाषित करता है उपयोगकर्ता-प्रमाणीकरण जीवनचक्र डेमो परियोजना के लिए फ़ील्ड: जन्म वर्ष। "" "Django.contrib.auth.models से उपयोगकर्ता आयात करें django.db आयात मॉडल वर्ग UserProfile (models.Model):" "" उपयोगकर्ता के बारे में अतिरिक्त जानकारी का एक टुकड़ा: जन्म वर्ष। --- नोट्स --- उपयोगी संबंधित एसक्यूएल: - `auth_user से आईडी चुनें जहां यूज़रनेम & lt; & gt; 'व्यवस्थापक';।। `-` auth_lifecycle_userprofile से चयन * जहां user_id = (एक्स, एक्स, ...); `" "" # इस लाइन की आवश्यकता है लिंक UserProfile एक उपयोगकर्ता मॉडल उदाहरण के लिए उपयोगकर्ता = models.OneToOneField (उपयोगकर्ता, related_name = "प्रोफाइल") # अतिरिक्त गुण हम शामिल करना चाहते हैं। birth_year = models.IntegerField (खाली = सच, verbose_name = "वर्ष आप पैदा हुए थे") # __str __ () विधि ओवरराइड कुछ सार्थक बाहर वापस जाने के लिए डीईएफ़ __str __ (आत्म ):     

यद्यपि

 < कोड> उपयोगकर्ता = उपयोगकर्ता (उपयोगकर्ता नाम = TEST_USER [ 'उपयोगकर्ता नाम'], पासवर्ड = TEST_USER [ 'पासवर्ड'], first_name = TEST_USER [ 'first_name'], last_name = TEST_USER [ 'last_name'], ईमेल = TEST_USER [ 'ईमेल'] ) User.save ()   

उपयोगकर्ता को डेटाबेस में सहेजता है, पासवर्ड ठीक से नहीं है और नमकीन (मुझे लगता है कि यह समस्या है)। इसलिए, उसी के साथ लॉगिन करने का प्रयास करना पासवर्ड विफल ( लॉगिन रिटर्न गलत )।

  self.client.login (उपयोगकर्ता नाम = TEST_USER ['उपयोगकर्ता नाम]], पासवर्ड = TEST_USER [' पासवर्ड ']) # डेटाबेस में जैसा नहीं है!   

इसके बजाय समाधान का उपयोग करना है:

  उपयोगकर्ता = उपयोगकर्ता.ऑब्जेक्ट .create_user (उपयोगकर्ता नाम = TEST_USER ['उपयोगकर्ता नाम]], पासवर्ड = TEST_USER [ 'पासवर्ड'], प्रथम_नाम = TEST_USER ['प्रथम_नाम'], अंतिम_नाम = TEST_USER ['अंतिम_नाम'], ईमेल = TEST_USER ['ईमेल'])    

Comments

Popular posts from this blog

java - ImportError: No module named py4j.java_gateway -

python - Receiving "KeyError" after decoding json result from url -

.net - Creating a new Queue Manager and Queue in Websphere MQ (using C#) -