view test/session_common.py @ 5650:e8ca7072c629

Fix Python 3 issues in REST code. * Need to use .get not .getheader for HTTP headers (see hg commit fec18298ae02, "Python 3 preparation: HTTP headers handling in roundup_server.py."). * Need to use key not cmp with sort (see hg commit 3fa026621f69, "Python 3 preparation: comparisons."). * dispatch output must be bytes, not str, otherwise writing it to the socket (e.g. in roundup-server) will fail. This fixes issues shown up attempting to access the REST interface with a browser with Python 3 (as opposed to with the Roundup testsuite, which also has known REST issues with Python 3).
author Joseph Myers <jsm@polyomino.org.uk>
date Sun, 17 Mar 2019 16:25:36 +0000
parents d26921b851c3
children 95a366d46065
line wrap: on
line source

import os, shutil, unittest

from .db_test_base import config


class SessionTest(object):
    def setUp(self):
        # remove previous test, ignore errors
        if os.path.exists(config.DATABASE):
            shutil.rmtree(config.DATABASE)
        os.makedirs(config.DATABASE + '/files')
        self.db = self.module.Database(config, 'admin')
        self.sessions = self.db.getSessionManager()
        self.otks = self.db.getOTKManager()

    def tearDown(self):
        if hasattr(self, 'db'):
            self.db.close()
        if os.path.exists(config.DATABASE):
            shutil.rmtree(config.DATABASE)

    def testList(self):
        self.sessions.list()
        self.sessions.set('random_key', text='hello, world!')
        self.sessions.list()

    def testGetAll(self):
        self.sessions.set('random_key', text='hello, world!')
        self.assertEqual(self.sessions.getall('random_key'),
            {'text': 'hello, world!'})

    def testDestroy(self):
        self.sessions.set('random_key', text='hello, world!')
        self.assertEquals(self.sessions.getall('random_key'),
            {'text': 'hello, world!'})
        self.sessions.destroy('random_key')
        self.assertRaises(KeyError, self.sessions.getall, 'random_key')

    def testSetSession(self):
        self.sessions.set('random_key', text='hello, world!')
        self.assertEqual(self.sessions.get('random_key', 'text'),
            'hello, world!')

    def testUpdateSession(self):
        self.sessions.set('random_key', text='hello, world!')
        self.assertEqual(self.sessions.get('random_key', 'text'),
            'hello, world!')
        self.sessions.set('random_key', text='nope')
        self.assertEqual(self.sessions.get('random_key', 'text'), 'nope')


Roundup Issue Tracker: http://roundup-tracker.org/