def testValues(self): transaction = Transaction() session = Session(transaction, 'test') self.assertRaises(KeyError, session.value, 'a') self.assertIsNone(session.value('a', None)) self.assertEqual(session.value('a', 0), 0) self.assertEqual(session.value('a', 'foo'), 'foo') self.assertIs(session.hasValue('a'), False) session.setValue('a', None) self.assertIsNone(session.value('a')) self.assertIsNone(session.value('a', 'foo')) self.assertIs(session.hasValue('a'), True) session.delValue('a') self.assertRaises(KeyError, session.value, 'a') self.assertRaises(KeyError, session.delValue, 'a') self.assertIs(session.hasValue('a'), False) session.setValue('a', 'foo') self.assertEqual(session.value('a'), 'foo') self.assertEqual(session.value('a', None), 'foo') self.assertIs(session.hasValue('a'), True) session.setValue('b', 'bar') self.assertEqual(session.value('a'), 'foo') self.assertEqual(session.value('b'), 'bar') self.assertIs(session.hasValue('b'), True) self.assertIsInstance(session.values(), dict) self.assertEqual(session.values(), {'a': 'foo', 'b': 'bar'})
def testDirectAccess(self): transaction = Transaction() session = Session(transaction, 'test') with self.assertRaises(KeyError): session['a'] # pylint: disable=pointless-statement self.assertNotIn('a', session) session['a'] = 'foo' self.assertEqual(session['a'], 'foo') self.assertIn('a', session) self.assertEqual(session.value('a'), 'foo') self.assertTrue(session.hasValue('a')) del session['a'] with self.assertRaises(KeyError): session['a'] # pylint: disable=pointless-statement self.assertNotIn('a', session) self.assertFalse(session.hasValue('a'))