Commit b157ffdb authored by Nick Sandford's avatar Nick Sandford
Browse files

Fixed #22849 -- Added Session.__str__()

parent 64e75c47
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
from __future__ import unicode_literals

from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _


@@ -20,6 +21,7 @@ class SessionManager(models.Manager):
        return s


@python_2_unicode_compatible
class Session(models.Model):
    """
    Django provides full support for anonymous sessions. The session
@@ -48,6 +50,9 @@ class Session(models.Model):
        verbose_name = _('session')
        verbose_name_plural = _('sessions')

    def __str__(self):
        return self.session_key

    def get_decoded(self):
        return SessionStore().decode(self.session_data)

+11 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ from django.test import TestCase, RequestFactory, override_settings
from django.test.utils import patch_logger
from django.utils import six
from django.utils import timezone
from django.utils.encoding import force_text

from django.contrib.sessions.exceptions import InvalidSessionKey

@@ -310,6 +311,16 @@ class DatabaseSessionTests(SessionTestsMixin, TestCase):

    backend = DatabaseSession

    def test_session_str(self):
        "Session repr should be the session key."
        self.session['x'] = 1
        self.session.save()

        session_key = self.session.session_key
        s = Session.objects.get(session_key=session_key)

        self.assertEqual(force_text(s), session_key)

    def test_session_get_decoded(self):
        """
        Test we can use Session.get_decoded to retrieve data stored