Django Test Client Session expiry

20 Views Asked by At

from django.test import Client is not taking expiry

I'm setting in my view

    def form_valid(self, form):
        remember_me = form.cleaned_data["remember_me"]
        print("Remember me:", remember_me)  # Debug print
        if not remember_me:
            self.request.session.set_expiry(1)
            self.request.session.modified = True
        return super().form_valid(form)

When calling it in testcase

    def test_form_valid(self):
        self.client.session.create()  # Create a new session for this test case
        response = self.client.post(reverse('user:login'), {'username': 'testuser', 'password': 'testpassword', 'remember_me': False}, follow=True)
        expiry_age = self.client.session.get_expiry_age()
        self.assertRedirects(response, reverse('guarantee:guarantee_list'), fetch_redirect_response=False)
        print('Session Expiry:', expiry_age)
        # Since it's not setting to 0 or 1, let's check if it's default (2 weeks)
        two_weeks_in_secs = 2 * 7 * 24 * 60 * 60
        self.assertNotEqual(expiry_age, two_weeks_in_secs)

getting Session Expiry: 1209600

0

There are 0 best solutions below