दुर्भाग्य से, यह एक आसान नहीं है क्योंकि आप इस समय के लिए आशा करेंगे। जैसा कि आपने देखा होगा, बस self.client.session
का उपयोग सीधे काम नहीं करेगा यदि आपने अन्य विचार नहीं बुलाए हैं जो आपके लिए उचित सत्र कुकीज़ के साथ सत्र स्थापित कर चुके हैं। सत्र स्टोर/कुकी को मैन्युअल रूप से सेट किया जाना चाहिए, या अन्य विचारों के माध्यम से।
वहाँ परीक्षण ग्राहक के साथ यह नकली सत्र के लिए आसान बनाने के लिए एक खुली टिकट है: https://code.djangoproject.com/ticket/10899
टिकट में समाधान के अलावा, वहाँ एक चाल है कि अगर आप django.contrib.auth
उपयोग कर रहे हैं इस्तेमाल किया जा सकता है। परीक्षण क्लाइंट login()
विधि एक सत्र स्टोर/कुकी सेट अप करती है जिसे बाद में परीक्षण में उपयोग किया जा सकता है।
यदि आपके पास सत्र सेट करने वाले कोई अन्य विचार हैं, तो उनसे अनुरोध करने से यह चाल भी होगी (आपके पास शायद एक और दृश्य है जो सत्र सेट करता है, अन्यथा सत्रों को पढ़ने वाले आपके विचार बहुत अनुपयोगी होंगे)।
from django.test import TestCase
from django.contrib.auth.models import User
class YourTest(TestCase):
def test_add_docs(self):
# If you already have another user, you might want to use it instead
User.objects.create_superuser('admin', '[email protected]', 'admin')
# self.client.login sets up self.client.session to be usable
self.client.login(username='admin', password='admin')
session = self.client.session
session['documents_to_share_ids'] = [1]
session.save()
response = self.client.get('/') # request.session['documents_to_share_ids'] will be available
...? कृपया कुछ उदाहरण कृपया। –