[Zope-Checkins] SVN: Zope/trunk/src/Products/ZCatalog/tests/test_catalog.py Don't produce warnings in our tests, only catch warnings for the one method that actually is supposed to emit it
Hanno Schlichting
hannosch at hannosch.eu
Sun Aug 1 08:15:22 EDT 2010
Log message for revision 115317:
Don't produce warnings in our tests, only catch warnings for the one method that actually is supposed to emit it
Changed:
U Zope/trunk/src/Products/ZCatalog/tests/test_catalog.py
-=-
Modified: Zope/trunk/src/Products/ZCatalog/tests/test_catalog.py
===================================================================
--- Zope/trunk/src/Products/ZCatalog/tests/test_catalog.py 2010-08-01 11:59:56 UTC (rev 115316)
+++ Zope/trunk/src/Products/ZCatalog/tests/test_catalog.py 2010-08-01 12:15:22 UTC (rev 115317)
@@ -169,8 +169,6 @@
def setUp(self):
self.warningshook = WarningsHook()
- self.warningshook.install()
-
self._catalog = Catalog()
self._catalog.lexicon = PLexicon('lexicon')
col1 = FieldIndex('col1')
@@ -191,6 +189,7 @@
att3 = KeywordIndex('att3')
num = FieldIndex('num')
+
self._catalog.addIndex('att1', att1)
self._catalog.addIndex('att2', att2)
self._catalog.addIndex('att3', att3)
@@ -201,29 +200,33 @@
self._catalog.addColumn('num')
for x in range(0, self.upper):
- self._catalog.catalogObject(dummy(self.nums[x]), `x`)
+ self._catalog.catalogObject(dummy(self.nums[x]), repr(x))
self._catalog = self._catalog.__of__(dummy('foo'))
def tearDown(self):
self._catalog = None
- self.warningshook.uninstall()
def testResultLength(self):
- a = self._catalog()
+ a = self._catalog(att1='att1')
self.assertEqual(len(a), self.upper,
'length should be %s, its %s' % (self.upper, len(a)))
def testEmptyMappingReturnsAll(self):
- upper = self.upper
- a = self._catalog({})
- self.assertEqual(len(a), upper,
- 'length should be %s, its %s' % (upper, len(a)))
- # Queries used to do the same, because of a bug in the
+ self.warningshook.install()
+ try:
+ upper = self.upper
+ length = len(self._catalog({}))
+ self.assertEqual(length, upper,
+ 'length should be %s, its %s' % (upper, length))
+ finally:
+ self.warningshook.uninstall()
+
+ def testMappingWithEmptyKeysDoesntReturnAll(self):
+ # Queries with empty keys used to return all, because of a bug in the
# parseIndexRequest function, mistaking a CatalogSearchArgumentsMap
# for a Record class
a = self._catalog({'col1': '', 'col2': '', 'col3': ''})
- self.assertEqual(len(a), 0,
- 'length should be %s, its %s' % (upper, len(a)))
+ self.assertEqual(len(a), 0, 'length should be 0, its %s' % len(a))
def testFieldIndexLength(self):
a = self._catalog(att1='att1')
@@ -287,7 +290,7 @@
def testGoodSortIndex(self):
upper = self.upper
- a = self._catalog(sort_on='num')
+ a = self._catalog(att1='att1', sort_on='num')
self.assertEqual(len(a), upper,
'length should be %s, its %s' % (upper, len(a)))
for x in range(self.upper):
@@ -344,31 +347,32 @@
# This exercises the optimization in the catalog that iterates
# over the sort index rather than the result set when the result
# set is much larger than the sort index.
- a = self._catalog(sort_on='att1')
+ a = self._catalog(att1='att1', sort_on='att1')
self.assertEqual(len(a), self.upper)
def testBadSortLimits(self):
- self.assertRaises(
- AssertionError, self._catalog, sort_on='num', sort_limit=0)
- self.assertRaises(
- AssertionError, self._catalog, sort_on='num', sort_limit=-10)
+ self.assertRaises(AssertionError,
+ self._catalog, att1='att1', sort_on='num', sort_limit=0)
+ self.assertRaises(AssertionError,
+ self._catalog, att1='att1', sort_on='num', sort_limit=-10)
def testSortLimit(self):
- full = self._catalog(sort_on='num')
- a = self._catalog(sort_on='num', sort_limit=10)
+ full = self._catalog(att1='att1', sort_on='num')
+ a = self._catalog(att1='att1', sort_on='num', sort_limit=10)
self.assertEqual([r.num for r in a], [r.num for r in full[:10]])
self.assertEqual(a.actual_result_count, self.upper)
- a = self._catalog(sort_on='num', sort_limit=10, sort_order='reverse')
+ a = self._catalog(att1='att1', sort_on='num',
+ sort_limit=10, sort_order='reverse')
rev = [r.num for r in full[-10:]]
rev.reverse()
self.assertEqual([r.num for r in a], rev)
self.assertEqual(a.actual_result_count, self.upper)
def testBigSortLimit(self):
- a = self._catalog(sort_on='num', sort_limit=self.upper*3)
+ a = self._catalog(att1='att1', sort_on='num', sort_limit=self.upper*3)
self.assertEqual(a.actual_result_count, self.upper)
self.assertEqual(a[0].num, 0)
- a = self._catalog(
+ a = self._catalog(att1='att1',
sort_on='num', sort_limit=self.upper*3, sort_order='reverse')
self.assertEqual(a.actual_result_count, self.upper)
self.assertEqual(a[0].num, self.upper - 1)
@@ -477,7 +481,8 @@
def testLimitSort(self):
from Products.ZCatalog.Catalog import mergeResults
results = [cat.searchResults(
- dict(number=True, sort_on='num'), sort_limit=2, _merge=0)
+ dict(att1='att1', number=True, sort_on='num'),
+ sort_limit=2, _merge=0)
for cat in self.catalogs]
merged_rids = [r.getRID() for r in mergeResults(
results, has_sort_keys=True, reverse=False)]
More information about the Zope-Checkins
mailing list