Exemple #1
0
    def test_get_decoded(self):
        store = SessionStore("Python/2.7", "127.0.0.1", None)
        store[auth.SESSION_KEY] = 1
        store["foo"] = "bar"
        store.save()

        session = Session.objects.get(pk=store.session_key)
        self.assertEqual(session.get_decoded(), {"foo": "bar", auth.SESSION_KEY: 1})
 def test_restore_session(self):
     store = SessionStore('Python/2.7', '127.0.0.1', None)
     store['foo'] = 'bar'
     store.save()
     client = Client()
     client.cookies[settings.SESSION_COOKIE_NAME] = store.session_key
     User.objects.create_user('bouke', '', 'secret')
     assert client.login(username='******', password='******')
     self.assertEqual(client.session['foo'], 'bar')
Exemple #3
0
 def test_load_modified(self):
     self.store[auth.SESSION_KEY] = 1
     self.store.save()
     store2 = SessionStore('Python/3.3', '8.8.8.8', self.store.session_key)
     store2.load()
     self.assertEqual(store2.user_agent, 'Python/3.3')
     self.assertEqual(store2.ip, '8.8.8.8')
     self.assertEqual(store2.user_id, 1)
     self.assertEqual(store2.modified, True)
    def test_get_decoded(self):
        store = SessionStore('Python/2.7', '127.0.0.1', None)
        store[auth.SESSION_KEY] = 1
        store['foo'] = 'bar'
        store.save()

        session = Session.objects.get(pk=store.session_key)
        self.assertEqual(session.get_decoded(),
                         {'foo': 'bar', auth.SESSION_KEY: 1})
Exemple #5
0
 def test_restore_session(self):
     store = SessionStore('Python/2.7', '127.0.0.1', None)
     store['foo'] = 'bar'
     store.save()
     client = Client()
     client.cookies[settings.SESSION_COOKIE_NAME] = store.session_key
     User.objects.create_user('bouke', '', 'secret')
     assert client.login(username='******', password='******')
     self.assertEqual(client.session['foo'], 'bar')
Exemple #6
0
    def test_get_decoded(self):
        store = SessionStore(user_agent='Python/2.7', ip='127.0.0.1')
        store[auth.SESSION_KEY] = 1
        store['foo'] = 'bar'
        store.save()

        session = Session.objects.get(pk=store.session_key)
        self.assertEqual(session.get_decoded(),
                         {'foo': 'bar', auth.SESSION_KEY: 1})
Exemple #7
0
 def test_restore_session(self):
     store = SessionStore("Python/2.7", "127.0.0.1", None)
     store["foo"] = "bar"
     store.save()
     client = Client()
     client.cookies[settings.SESSION_COOKIE_NAME] = store.session_key
     User.objects.create_user("bouke", "", "secret")
     assert client.login(username="******", password="******")
     self.assertEqual(client.session["foo"], "bar")
Exemple #8
0
 def test_load_unmodified(self):
     self.store[auth.SESSION_KEY] = 1
     self.store.save()
     store2 = SessionStore("Python/2.7", "127.0.0.1", self.store.session_key)
     store2.load()
     self.assertEqual(store2.user_agent, "Python/2.7")
     self.assertEqual(store2.ip, "127.0.0.1")
     self.assertEqual(store2.user_id, 1)
     self.assertEqual(store2.modified, False)
 def test_load_modified(self):
     self.store[auth.SESSION_KEY] = 1
     self.store.save()
     store2 = SessionStore('Python/3.3', '8.8.8.8', self.store.session_key)
     store2.load()
     self.assertEqual(store2.user_agent, 'Python/3.3')
     self.assertEqual(store2.ip, '8.8.8.8')
     self.assertEqual(store2.user_id, 1)
     self.assertEqual(store2.modified, True)
    def test_very_long_ua(self):
        ua = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; ' \
             'Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; ' \
             '.NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; ' \
             'InfoPath.3; ms-office; MSOffice 14)'
        store = SessionStore(ua, '127.0.0.1', None)
        store.save()

        session = Session.objects.get(pk=store.session_key)
        self.assertEqual(session.user_agent, ua[:200])
Exemple #11
0
 def test_load_unmodified(self):
     self.store[auth.SESSION_KEY] = 1
     self.store.save()
     store2 = SessionStore('Python/2.7', '127.0.0.1',
                           self.store.session_key)
     store2.load()
     self.assertEqual(store2.user_agent, 'Python/2.7')
     self.assertEqual(store2.ip, '127.0.0.1')
     self.assertEqual(store2.user_id, 1)
     self.assertEqual(store2.modified, False)
Exemple #12
0
 def test_load_unmodified(self):
     self.store[auth.SESSION_KEY] = 1
     self.store.save()
     store2 = SessionStore(session_key=self.store.session_key,
                           user_agent='Python/2.7', ip='127.0.0.1')
     store2.load()
     self.assertEqual(store2.user_agent, 'Python/2.7')
     self.assertEqual(store2.ip, '127.0.0.1')
     self.assertEqual(store2.user_id, 1)
     self.assertEqual(store2.modified, False)
Exemple #13
0
    def test_very_long_ua(self):
        ua = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; ' \
             'Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; ' \
             '.NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; ' \
             'InfoPath.3; ms-office; MSOffice 14)'
        store = SessionStore(ua, '127.0.0.1', None)
        store.save()

        session = Session.objects.get(pk=store.session_key)
        self.assertEqual(session.user_agent, ua[:200])
Exemple #14
0
 def test_load_modified(self):
     self.store[auth.SESSION_KEY] = self.user.id
     self.store.save()
     store2 = SessionStore(session_key=self.store.session_key,
                           user_agent='Python/3.3',
                           ip='8.8.8.8')
     store2.load()
     self.assertEqual(store2.user_agent, 'Python/3.3')
     self.assertEqual(store2.ip, '8.8.8.8')
     self.assertEqual(store2.user_id, self.user.id)
     self.assertEqual(store2.modified, True)
Exemple #15
0
    def setUp(self):
        User.objects.create_superuser('bouke', '', 'secret')
        assert self.client.login(username='******', password='******')

        expired = SessionStore('Python/2.5', '20.13.1.1')
        expired.set_expiry(-365 * 86400)
        expired.save()
        unexpired = SessionStore('Python/2.7', '1.1.1.1')
        unexpired.save()

        self.admin_url = reverse('admin:user_sessions_session_changelist')
Exemple #16
0
    def test_get_decoded(self):
        user = User.objects.create_superuser('bouke', '', 'secret')
        store = SessionStore(user_agent='Python/2.7', ip='127.0.0.1')
        store[auth.SESSION_KEY] = user.id
        store['foo'] = 'bar'
        store.save()

        session = Session.objects.get(pk=store.session_key)
        self.assertEqual(session.get_decoded(), {
            'foo': 'bar',
            auth.SESSION_KEY: user.id
        })
    def test_duplicate_create(self):
        s1 = SessionStore('Python/2.7', '127.0.0.1', 'DUPLICATE')
        s1.create()
        s2 = SessionStore('Python/2.7', '127.0.0.1', 'DUPLICATE')
        s2.create()
        self.assertNotEqual(s1.session_key, s2.session_key)

        s3 = SessionStore('Python/2.7', '127.0.0.1', s1.session_key)
        with self.assertRaises(CreateError):
            s3.save(must_create=True)
Exemple #18
0
    def setUp(self):
        User.objects.create_superuser("bouke", "", "secret")
        assert self.client.login(username="******", password="******")

        expired = SessionStore("Python/2.5", "20.13.1.1")
        expired.set_expiry(-365 * 86400)
        expired.save()
        unexpired = SessionStore("Python/2.7", "1.1.1.1")
        unexpired.save()

        self.admin_url = reverse("admin:user_sessions_session_changelist")
    def setUp(self):
        User.objects.create_superuser('bouke', '', 'secret')
        assert self.client.login(username='******', password='******')

        expired = SessionStore('Python/2.5', '20.13.1.1')
        expired.set_expiry(-365 * 86400)
        expired.save()
        unexpired = SessionStore('Python/2.7', '1.1.1.1')
        unexpired.save()

        self.admin_url = reverse('admin:user_sessions_session_changelist')
 def setUp(self):
     self.store = SessionStore('Python/2.7', '127.0.0.1', None)
Exemple #21
0
class SessionStoreTest(TestCase):
    def setUp(self):
        self.user = User.objects.create_superuser('bouke', '', 'secret')
        self.store = SessionStore(user_agent='Python/2.7', ip='127.0.0.1')

    def test_untouched_init(self):
        self.assertFalse(self.store.modified)
        self.assertFalse(self.store.accessed)

    def test_auth_session_key(self):
        self.assertFalse(auth.SESSION_KEY in self.store)
        self.assertFalse(self.store.modified)
        self.assertTrue(self.store.accessed)

        self.store.get(auth.SESSION_KEY)
        self.assertFalse(self.store.modified)

        self.store[auth.SESSION_KEY] = self.user.id
        self.assertTrue(self.store.modified)

    def test_save(self):
        self.store[auth.SESSION_KEY] = self.user.id
        self.store.save()

        session = Session.objects.get(pk=self.store.session_key)
        self.assertEqual(session.user_agent, 'Python/2.7')
        self.assertEqual(session.ip, '127.0.0.1')
        self.assertEqual(session.user_id, self.user.id)
        self.assertAlmostEqual(now(),
                               session.last_activity,
                               delta=timedelta(seconds=5))

    def test_load_unmodified(self):
        self.store[auth.SESSION_KEY] = self.user.id
        self.store.save()
        store2 = SessionStore(session_key=self.store.session_key,
                              user_agent='Python/2.7',
                              ip='127.0.0.1')
        store2.load()
        self.assertEqual(store2.user_agent, 'Python/2.7')
        self.assertEqual(store2.ip, '127.0.0.1')
        self.assertEqual(store2.user_id, self.user.id)
        self.assertEqual(store2.modified, False)

    def test_load_modified(self):
        self.store[auth.SESSION_KEY] = self.user.id
        self.store.save()
        store2 = SessionStore(session_key=self.store.session_key,
                              user_agent='Python/3.3',
                              ip='8.8.8.8')
        store2.load()
        self.assertEqual(store2.user_agent, 'Python/3.3')
        self.assertEqual(store2.ip, '8.8.8.8')
        self.assertEqual(store2.user_id, self.user.id)
        self.assertEqual(store2.modified, True)

    def test_duplicate_create(self):
        s1 = SessionStore(session_key='DUPLICATE',
                          user_agent='Python/2.7',
                          ip='127.0.0.1')
        s1.create()
        s2 = SessionStore(session_key='DUPLICATE',
                          user_agent='Python/2.7',
                          ip='127.0.0.1')
        s2.create()
        self.assertNotEqual(s1.session_key, s2.session_key)

        s3 = SessionStore(session_key=s1.session_key,
                          user_agent='Python/2.7',
                          ip='127.0.0.1')
        with self.assertRaises(CreateError):
            s3.save(must_create=True)

    def test_delete(self):
        # not persisted, should just return
        self.store.delete()

        # create, then delete
        self.store.create()
        session_key = self.store.session_key
        self.store.delete()

        # non-existing sessions, should not raise
        self.store.delete()
        self.store.delete(session_key)

    def test_clear(self):
        """
        Clearing the session should clear all non-browser information
        """
        self.store[auth.SESSION_KEY] = 1
        self.store.clear()
        self.store.save()

        session = Session.objects.get(pk=self.store.session_key)
        self.assertEqual(session.user_id, None)
Exemple #22
0
 def setUp(self):
     self.store = SessionStore(user_agent='Python/2.7', ip='127.0.0.1')
     User.objects.create_user('bouke', '', 'secret', id=1)
Exemple #23
0
    def test_duplicate_create(self):
        s1 = SessionStore('Python/2.7', '127.0.0.1', 'DUPLICATE')
        s1.create()
        s2 = SessionStore('Python/2.7', '127.0.0.1', 'DUPLICATE')
        s2.create()
        self.assertNotEqual(s1.session_key, s2.session_key)

        s3 = SessionStore('Python/2.7', '127.0.0.1', s1.session_key)
        with self.assertRaises(CreateError):
            s3.save(must_create=True)
Exemple #24
0
 def setUp(self):
     self.store = SessionStore(user_agent='Python/2.7', ip='127.0.0.1')
 def setUp(self):
     self.store = SessionStore(user_agent='Python/2.7', ip='127.0.0.1')
Exemple #26
0
 def setUp(self):
     self.store = SessionStore('Python/2.7', '127.0.0.1', None)
Exemple #27
0
class SessionStoreTest(TestCase):
    def setUp(self):
        self.store = SessionStore('Python/2.7', '127.0.0.1', None)

    def test_untouched_init(self):
        self.assertFalse(self.store.modified)
        self.assertFalse(self.store.accessed)

    def test_auth_session_key(self):
        self.assertFalse(auth.SESSION_KEY in self.store)
        self.assertFalse(self.store.modified)
        self.assertTrue(self.store.accessed)

        self.store.get(auth.SESSION_KEY)
        self.assertFalse(self.store.modified)

        self.store[auth.SESSION_KEY] = 1
        self.assertTrue(self.store.modified)

    def test_save(self):
        self.store[auth.SESSION_KEY] = 1
        self.store.save()

        session = Session.objects.get(pk=self.store.session_key)
        self.assertEqual(session.user_agent, 'Python/2.7')
        self.assertEqual(session.ip, '127.0.0.1')
        self.assertEqual(session.user_id, 1)
        self.assertAlmostEqual(now(),
                               session.last_activity,
                               delta=timedelta(seconds=5))

    def test_load_unmodified(self):
        self.store[auth.SESSION_KEY] = 1
        self.store.save()
        store2 = SessionStore('Python/2.7', '127.0.0.1',
                              self.store.session_key)
        store2.load()
        self.assertEqual(store2.user_agent, 'Python/2.7')
        self.assertEqual(store2.ip, '127.0.0.1')
        self.assertEqual(store2.user_id, 1)
        self.assertEqual(store2.modified, False)

    def test_load_modified(self):
        self.store[auth.SESSION_KEY] = 1
        self.store.save()
        store2 = SessionStore('Python/3.3', '8.8.8.8', self.store.session_key)
        store2.load()
        self.assertEqual(store2.user_agent, 'Python/3.3')
        self.assertEqual(store2.ip, '8.8.8.8')
        self.assertEqual(store2.user_id, 1)
        self.assertEqual(store2.modified, True)

    def test_duplicate_create(self):
        s1 = SessionStore('Python/2.7', '127.0.0.1', 'DUPLICATE')
        s1.create()
        s2 = SessionStore('Python/2.7', '127.0.0.1', 'DUPLICATE')
        s2.create()
        self.assertNotEqual(s1.session_key, s2.session_key)

        s3 = SessionStore('Python/2.7', '127.0.0.1', s1.session_key)
        with self.assertRaises(CreateError):
            s3.save(must_create=True)

    def test_integrity(self):
        self.store.user_agent = None
        with self.assertRaisesRegexp(
                IntegrityError,
                '(user_sessions_session.user_agent may not be NULL|'
                'NOT NULL constraint failed: user_sessions_session.user_agent)'
        ):
            self.store.save()

    def test_delete(self):
        # not persisted, should just return
        self.store.delete()

        # create, then delete
        self.store.create()
        session_key = self.store.session_key
        self.store.delete()

        # non-existing sessions, should not raise
        self.store.delete()
        self.store.delete(session_key)

    def test_clear(self):
        """
        Clearing the session should clear all non-browser information
        """
        self.store[auth.SESSION_KEY] = 1
        self.store.clear()
        self.store.save()

        session = Session.objects.get(pk=self.store.session_key)
        self.assertEqual(session.user_id, None)
class SessionStoreTest(TestCase):
    def setUp(self):
        self.store = SessionStore('Python/2.7', '127.0.0.1', None)

    def test_untouched_init(self):
        self.assertFalse(self.store.modified)
        self.assertFalse(self.store.accessed)

    def test_auth_session_key(self):
        self.assertFalse(auth.SESSION_KEY in self.store)
        self.assertFalse(self.store.modified)
        self.assertTrue(self.store.accessed)

        self.store.get(auth.SESSION_KEY)
        self.assertFalse(self.store.modified)

        self.store[auth.SESSION_KEY] = 1
        self.assertTrue(self.store.modified)

    def test_save(self):
        self.store[auth.SESSION_KEY] = 1
        self.store.save()

        session = Session.objects.get(pk=self.store.session_key)
        self.assertEqual(session.user_agent, 'Python/2.7')
        self.assertEqual(session.ip, '127.0.0.1')
        self.assertEqual(session.user_id, 1)
        self.assertAlmostEqual(now(), session.last_activity,
                               delta=timedelta(seconds=5))

    def test_load_unmodified(self):
        self.store[auth.SESSION_KEY] = 1
        self.store.save()
        store2 = SessionStore('Python/2.7', '127.0.0.1',
                              self.store.session_key)
        store2.load()
        self.assertEqual(store2.user_agent, 'Python/2.7')
        self.assertEqual(store2.ip, '127.0.0.1')
        self.assertEqual(store2.user_id, 1)
        self.assertEqual(store2.modified, False)

    def test_load_modified(self):
        self.store[auth.SESSION_KEY] = 1
        self.store.save()
        store2 = SessionStore('Python/3.3', '8.8.8.8', self.store.session_key)
        store2.load()
        self.assertEqual(store2.user_agent, 'Python/3.3')
        self.assertEqual(store2.ip, '8.8.8.8')
        self.assertEqual(store2.user_id, 1)
        self.assertEqual(store2.modified, True)

    def test_duplicate_create(self):
        s1 = SessionStore('Python/2.7', '127.0.0.1', 'DUPLICATE')
        s1.create()
        s2 = SessionStore('Python/2.7', '127.0.0.1', 'DUPLICATE')
        s2.create()
        self.assertNotEqual(s1.session_key, s2.session_key)

        s3 = SessionStore('Python/2.7', '127.0.0.1', s1.session_key)
        with self.assertRaises(CreateError):
            s3.save(must_create=True)

    def test_integrity(self):
        self.store.user_agent = None
        with self.assertRaisesRegexp(
                IntegrityError,
                '(user_sessions_session.user_agent may not be NULL|'
                'NOT NULL constraint failed: user_sessions_session.user_agent)'
        ):
            self.store.save()

    def test_delete(self):
        # not persisted, should just return
        self.store.delete()

        # create, then delete
        self.store.create()
        session_key = self.store.session_key
        self.store.delete()

        # non-existing sessions, should not raise
        self.store.delete()
        self.store.delete(session_key)

    def test_clear(self):
        """
        Clearing the session should clear all non-browser information
        """
        self.store[auth.SESSION_KEY] = 1
        self.store.clear()
        self.store.save()

        session = Session.objects.get(pk=self.store.session_key)
        self.assertEqual(session.user_id, None)
Exemple #29
0
 def setUp(self):
     self.store = SessionStore("Python/2.7", "127.0.0.1", None)