Exemple #1
0
    def test_change_anonymous_session(self):
        """
        Verify that changing from one anonymous session to an inexisting
        anonymous session creates the new session and doesn't carry over
        variables from the previous session.
        """

        with self.env.db_transaction as db:
            db("INSERT INTO session VALUES ('123456', 0, 0)")
            db("""
                INSERT INTO session_attribute
                VALUES ('123456', 0, 'foo', 'bar')
                """)

        incookie = Cookie()
        incookie['trac_session'] = '123456'
        req = Mock(authname='anonymous', base_path='/', incookie=incookie,
                   outcookie=Cookie())
        session = Session(self.env, req)
        self.assertEqual({'foo': 'bar'}, session)
        
        session.get_session('7890')
        session['baz'] = 'moo'
        session.save()
        self.assertEqual({'baz': 'moo'}, session)

        with self.env.db_query as db:
            self.assertEqual(1, db("""
                SELECT COUNT(*) FROM session
                WHERE sid='7890' AND authenticated=0
                """)[0][0])
            self.assertEqual([('baz', 'moo')], db("""
                SELECT name, value FROM session_attribute
                WHERE sid='7890' AND authenticated=0
                """))
Exemple #2
0
    def test_change_anonymous_session(self):
        """
        Verify that changing from one anonymous session to an inexisting
        anonymous session creates the new session and doesn't carry over
        variables from the previous session.
        """

        cursor = self.db.cursor()
        cursor.execute("INSERT INTO session VALUES ('123456', 0, 0)")
        cursor.execute("INSERT INTO session_attribute VALUES "
                       "('123456', 0, 'foo', 'bar')")

        incookie = Cookie()
        incookie['trac_session'] = '123456'
        req = Mock(authname='anonymous', base_path='/', incookie=incookie,
                   outcookie=Cookie())
        session = Session(self.env, req)
        self.assertEqual({'foo': 'bar'}, session)
        
        session.get_session('7890')
        session['baz'] = 'moo'
        session.save()
        self.assertEqual({'baz': 'moo'}, session)

        cursor.execute("SELECT COUNT(*) FROM session WHERE sid='7890' AND "
                       "authenticated=0")
        self.assertEqual(1, cursor.fetchone()[0])
        cursor.execute("SELECT name, value FROM session_attribute "
                       "WHERE sid='7890' AND authenticated=0")
        self.assertEqual([('baz', 'moo')], cursor.fetchall())
Exemple #3
0
    def test_change_anonymous_session(self):
        """
        Verify that changing from one anonymous session to an inexisting
        anonymous session creates the new session and doesn't carry over
        variables from the previous session.
        """

        with self.env.db_transaction as db:
            db("INSERT INTO session VALUES ('123456', 0, 0)")
            db(
                """
                INSERT INTO session_attribute
                VALUES ('123456', 0, 'foo', 'bar')
                """
            )

        incookie = Cookie()
        incookie["trac_session"] = "123456"
        req = Mock(authname="anonymous", base_path="/", incookie=incookie, outcookie=Cookie())
        session = Session(self.env, req)
        self.assertEqual({"foo": "bar"}, session)

        session.get_session("7890")
        session["baz"] = "moo"
        session.save()
        self.assertEqual({"baz": "moo"}, session)

        with self.env.db_query as db:
            self.assertEqual(
                1,
                db(
                    """
                SELECT COUNT(*) FROM session
                WHERE sid='7890' AND authenticated=0
                """
                )[0][0],
            )
            self.assertEqual(
                [("baz", "moo")],
                db(
                    """
                SELECT name, value FROM session_attribute
                WHERE sid='7890' AND authenticated=0
                """
                ),
            )
Exemple #4
0
 def test_session_get_session_with_invalid_sid(self):
     req = MockRequest(self.env, authname='anonymous')
     session = Session(self.env, req)
     session.get_session('0123456789')
     self.assertEqual('0123456789', session.sid)
     session.get_session('abcxyz')
     self.assertEqual('abcxyz', session.sid)
     session.get_session('abc123xyz')
     self.assertEqual('abc123xyz', session.sid)
     self.assertRaises(TracError, session.get_session, 'abc 123 xyz')
     self.assertRaises(TracError, session.get_session, 'abc-123-xyz')
     self.assertRaises(TracError, session.get_session, 'abc<i>123</i>xyz')
     self.assertRaises(TracError, session.get_session, u'abc123xÿz')
     self.assertRaises(TracError, session.get_session,
                       u'abc¹₂³xyz')  # Unicode digits
Exemple #5
0
 def test_session_get_session_with_invalid_sid(self):
     cookie = Cookie()
     req = Mock(incookie=Cookie(), outcookie=cookie, authname='anonymous',
                base_path='/')
     session = Session(self.env, req)
     session.get_session('0123456789')
     self.assertEqual('0123456789', session.sid)
     session.get_session('abcxyz')
     self.assertEqual('abcxyz', session.sid)
     session.get_session('abc123xyz')
     self.assertEqual('abc123xyz', session.sid)
     self.assertRaises(TracError, session.get_session, 'abc 123 xyz')
     self.assertRaises(TracError, session.get_session, 'abc-123-xyz')
     self.assertRaises(TracError, session.get_session, 'abc<i>123</i>xyz')
     self.assertRaises(TracError, session.get_session, u'abc123xÿz')
     self.assertRaises(TracError, session.get_session,
                       u'abc¹₂³xyz')  # Unicode digits
Exemple #6
0
 def test_session_get_session_with_invalid_sid(self):
     cookie = Cookie()
     req = Mock(incookie=Cookie(),
                outcookie=cookie,
                authname='anonymous',
                base_path='/')
     session = Session(self.env, req)
     session.get_session('0123456789')
     self.assertEqual('0123456789', session.sid)
     session.get_session('abcxyz')
     self.assertEqual('abcxyz', session.sid)
     session.get_session('abc123xyz')
     self.assertEqual('abc123xyz', session.sid)
     self.assertRaises(TracError, session.get_session, 'abc 123 xyz')
     self.assertRaises(TracError, session.get_session, 'abc-123-xyz')
     self.assertRaises(TracError, session.get_session, 'abc<i>123</i>xyz')
     self.assertRaises(TracError, session.get_session, u'abc123xÿz')
     self.assertRaises(TracError, session.get_session,
                       u'abc¹₂³xyz')  # Unicode digits