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 """))
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())
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 """ ), )
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
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