annotate test/test_memorydb.py @ 4841:3ff1a288fb9c

issue2550583, issue2550635 Do not limit results with Xapian indexer Other indexer backends do not limit the number of results. Add test with searching for 123 entries on all backends, more should not be used, because the slower backends would take too much time. enquire.get_mset was limited to 10 results and since the results can be messages instead of issues, the 10 results could even be just one issue if there were many messages matching the search term before searching the messages of other issues. Additionally the few results could be filtered by other attributes, e.g. only showing open issues, which caused even less matches.
author Thomas Arendsen Hein <thomas@intevation.de>
date Mon, 21 Oct 2013 12:56:28 +0200
parents 6e3e4f24c753
children 63c79c0992ae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4349
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 import unittest, os, shutil, time
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 from roundup import hyperdb
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 from db_test_base import DBTest, ROTest, SchemaTest, config, setupSchema
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 import memorydb
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 class memorydbOpener:
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 module = memorydb
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 def nuke_database(self):
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 # really kill it
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 self.db = None
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 db = None
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 def open_database(self):
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 if self.db is None:
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 self.db = self.module.Database(config, 'admin')
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 return self.db
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 def setUp(self):
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22 self.open_database()
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 setupSchema(self.db, 1, self.module)
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 def tearDown(self):
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 if self.db is not None:
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27 self.db.close()
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 # nuke and re-create db for restore
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 def nukeAndCreate(self):
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 self.db.close()
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 self.nuke_database()
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 self.db = self.module.Database(config, 'admin')
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 setupSchema(self.db, 0, self.module)
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 class memorydbDBTest(memorydbOpener, DBTest):
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 pass
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 class memorydbROTest(memorydbOpener, ROTest):
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 def setUp(self):
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 self.db = self.module.Database(config)
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 setupSchema(self.db, 0, self.module)
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44 class memorydbSchemaTest(memorydbOpener, SchemaTest):
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45 pass
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 from session_common import DBMTest
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 class memorydbSessionTest(memorydbOpener, DBMTest):
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49 def setUp(self):
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50 self.db = self.module.Database(config, 'admin')
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 setupSchema(self.db, 1, self.module)
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52 self.sessions = self.db.sessions
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
54 def test_suite():
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
55 suite = unittest.TestSuite()
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
56 print 'Including memorydb tests'
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
57 suite.addTest(unittest.makeSuite(memorydbDBTest))
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
58 suite.addTest(unittest.makeSuite(memorydbROTest))
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
59 suite.addTest(unittest.makeSuite(memorydbSchemaTest))
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
60 suite.addTest(unittest.makeSuite(memorydbSessionTest))
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
61 return suite
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
62
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
63 if __name__ == '__main__':
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
64 runner = unittest.TextTestRunner()
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
65 unittest.main(testRunner=runner)
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
66
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
67
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 # vim: set filetype=python ts=4 sw=4 et si
f0faef4dd023 Make memorydb pass all tests;
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69

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