Mercurial > p > roundup > code
view test/test_sqlite.py @ 4781:6e9b9743de89
Implementation for:
http://issues.roundup-tracker.org/issue2550731
Add mechanism for the detectors to be able to tell the source of the
data changes.
Support for tx_Source property on database handle. Can be
used by detectors to find out the source of a change in an auditor to
block changes arriving by unauthenticated mechanisms (e.g. plain email
where headers can be faked). The property db.tx_Source has the
following values:
* None - Default value set to None. May be valid if it's a script
that is created by the user. Otherwise it's an error and indicates
that some code path is not properly setting the tx_Source property.
* "cli" - this string value is set when using roundup-admin and
supplied scripts.
* "web" - this string value is set when using any web based
technique: html interface, xmlrpc ....
* "email" - this string value is set when using an unauthenticated
email based technique.
* "email-sig-openpgp" - this string value is set when email with a
valid pgp signature is used. (*NOTE* the testing for this mode
is incomplete. If you have a pgp infrastructure you should test
and verify that this is properly set.)
This also includes some (possibly incomplete) tests cases for the
modes above and an example of using ts_Source in the customization.txt
document.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 23 Apr 2013 23:06:09 -0400 |
| parents | 6e3e4f24c753 |
| children | 63c79c0992ae |
line wrap: on
line source
# # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) # This module is free software, and you may redistribute it and/or modify # under the same terms as Python, so long as this copyright message and # disclaimer are retained in their original form. # # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. import unittest, os, shutil, time from roundup.backends import get_backend, have_backend from db_test_base import DBTest, ROTest, SchemaTest, ClassicInitTest, config from db_test_base import ConcurrentDBTest, FilterCacheTest class sqliteOpener: if have_backend('sqlite'): module = get_backend('sqlite') def nuke_database(self): shutil.rmtree(config.DATABASE) class sqliteDBTest(sqliteOpener, DBTest): pass class sqliteROTest(sqliteOpener, ROTest): pass class sqliteSchemaTest(sqliteOpener, SchemaTest): pass class sqliteClassicInitTest(ClassicInitTest): backend = 'sqlite' class sqliteConcurrencyTest(ConcurrentDBTest): backend = 'sqlite' class sqliteFilterCacheTest(sqliteOpener, FilterCacheTest): backend = 'sqlite' from session_common import RDBMSTest class sqliteSessionTest(sqliteOpener, RDBMSTest): pass def test_suite(): suite = unittest.TestSuite() from roundup import backends if not have_backend('sqlite'): print 'Skipping sqlite tests' return suite print 'Including sqlite tests' suite.addTest(unittest.makeSuite(sqliteDBTest)) suite.addTest(unittest.makeSuite(sqliteROTest)) suite.addTest(unittest.makeSuite(sqliteSchemaTest)) suite.addTest(unittest.makeSuite(sqliteClassicInitTest)) suite.addTest(unittest.makeSuite(sqliteSessionTest)) suite.addTest(unittest.makeSuite(sqliteConcurrencyTest)) suite.addTest(unittest.makeSuite(sqliteFilterCacheTest)) return suite if __name__ == '__main__': runner = unittest.TextTestRunner() unittest.main(testRunner=runner)
