# HG changeset patch # User John Rouillard # Date 1658775750 14400 # Node ID 044dcf3608a27540b78d8dec68b84705abea30e8 # Parent 23dbb94466e68af7e805016c4fc4560829269255 update session db tests session_common.py: testList had no asserts. While adding them I found out the memory and anydbm backends return byte strings while the rdbms backend return strings. So added a call to s2b defined in each db test file to covert. rdbms i a no-op and memory/anydbm call roundup.anypy.strings::s2b(). also add some data to other tests and verify it. other files: define s2b appropriately. diff -r 23dbb94466e6 -r 044dcf3608a2 test/session_common.py --- a/test/session_common.py Mon Jul 25 14:28:31 2022 -0400 +++ b/test/session_common.py Mon Jul 25 15:02:30 2022 -0400 @@ -1,4 +1,4 @@ -import os, shutil, unittest +import os, shutil, time, unittest from .db_test_base import config @@ -20,14 +20,23 @@ shutil.rmtree(config.DATABASE) def testList(self): + '''Under dbm/memory sessions store, keys are returned as + byte strings. self.s2b converts string to byte under those + backends but is a no-op for rdbms based backends. + + Unknown why keys can be strings not bytes for get/set + and work correctly. + ''' self.sessions.list() self.sessions.set('random_key', text='hello, world!') - self.sessions.list() + self.sessions.set('random_key2', text='hello, world!') + self.assertEqual(self.sessions.list().sort(), + [self.s2b('random_key'), self.s2b('random_key2')].sort()) def testGetAll(self): - self.sessions.set('random_key', text='hello, world!') + self.sessions.set('random_key', text='hello, world!', otherval='bar') self.assertEqual(self.sessions.getall('random_key'), - {'text': 'hello, world!'}) + {'text': 'hello, world!', 'otherval': 'bar'}) def testDestroy(self): self.sessions.set('random_key', text='hello, world!') @@ -37,9 +46,11 @@ self.assertRaises(KeyError, self.sessions.getall, 'random_key') def testSetSession(self): - self.sessions.set('random_key', text='hello, world!') + self.sessions.set('random_key', text='hello, world!', otherval='bar') self.assertEqual(self.sessions.get('random_key', 'text'), 'hello, world!') + self.assertEqual(self.sessions.get('random_key', 'otherval'), + 'bar') def testUpdateSession(self): self.sessions.set('random_key', text='hello, world!') diff -r 23dbb94466e6 -r 044dcf3608a2 test/test_anydbm.py --- a/test/test_anydbm.py Mon Jul 25 14:28:31 2022 -0400 +++ b/test/test_anydbm.py Mon Jul 25 15:02:30 2022 -0400 @@ -22,6 +22,8 @@ from .db_test_base import HTMLItemTest, SpecialActionTest from .rest_common import TestCase as RestTestCase +from roundup.anypy import strings + class anydbmOpener: module = get_backend('anydbm') @@ -51,7 +53,7 @@ from .session_common import SessionTest class anydbmSessionTest(anydbmOpener, SessionTest, unittest.TestCase): - pass + s2b = lambda x,y: strings.s2b(y) class anydbmSpecialActionTestCase(anydbmOpener, SpecialActionTest, unittest.TestCase): diff -r 23dbb94466e6 -r 044dcf3608a2 test/test_memorydb.py --- a/test/test_memorydb.py Mon Jul 25 14:28:31 2022 -0400 +++ b/test/test_memorydb.py Mon Jul 25 15:02:30 2022 -0400 @@ -5,6 +5,8 @@ from .db_test_base import DBTest, ROTest, SchemaTest, config, setupSchema from roundup.test import memorydb +from roundup.anypy import strings + class memorydbOpener: module = memorydb @@ -54,6 +56,8 @@ from .session_common import SessionTest class memorydbSessionTest(memorydbOpener, SessionTest, unittest.TestCase): + s2b = lambda x,y: strings.s2b(y) + def setUp(self): self.db = self.module.Database(config, 'admin') setupSchema(self.db, 1, self.module) diff -r 23dbb94466e6 -r 044dcf3608a2 test/test_sqlite.py --- a/test/test_sqlite.py Mon Jul 25 14:28:31 2022 -0400 +++ b/test/test_sqlite.py Mon Jul 25 15:02:30 2022 -0400 @@ -98,7 +98,7 @@ from .session_common import SessionTest class sqliteSessionTest(sqliteOpener, SessionTest, unittest.TestCase): - pass + s2b = lambda x,y : y class sqliteRestTest (RestTestCase, unittest.TestCase): backend = 'sqlite'