[Zope-Checkins] SVN: Zope/trunk/src/Products/ZCatalog/tests/test_plan.py Write some of the easy tests
Hanno Schlichting
hannosch at hannosch.eu
Thu Aug 5 15:09:20 EDT 2010
Log message for revision 115508:
Write some of the easy tests
Changed:
U Zope/trunk/src/Products/ZCatalog/tests/test_plan.py
-=-
Modified: Zope/trunk/src/Products/ZCatalog/tests/test_plan.py
===================================================================
--- Zope/trunk/src/Products/ZCatalog/tests/test_plan.py 2010-08-05 18:31:59 UTC (rev 115507)
+++ Zope/trunk/src/Products/ZCatalog/tests/test_plan.py 2010-08-05 19:09:20 UTC (rev 115508)
@@ -11,6 +11,7 @@
#
##############################################################################
+import os
import unittest
from zope.testing import cleanup
@@ -28,17 +29,136 @@
return (self.num, self.num + 1)
-# class TestNestedDict(unittest.TestCase):
+TESTMAP = {
+ '/folder/catalog': {
+ 'index1 index2': {
+ 'index1': (10, 2.0, 3, True),
+ 'index2': (15, 1.5, 2, False),
+ }
+ }
+}
-# class TestPriorityMap(unittest.TestCase):
-# class TestReports(unittest.TestCase):
+class TestNestedDict(unittest.TestCase):
+ def setUp(self):
+ self.nest = self._makeOne()
+
+ def _makeOne(self):
+ from ..plan import NestedDict
+ return NestedDict
+
+ def test_novalue(self):
+ self.assertEquals(getattr(self.nest, 'value', None), None)
+
+ def test_nolock(self):
+ self.assertEquals(getattr(self.nest, 'lock', None), None)
+
+
+class TestPriorityMap(unittest.TestCase):
+
+ def setUp(self):
+ self.pmap = self._makeOne()
+
+ def tearDown(self):
+ self.pmap.clear()
+
+ def _makeOne(self):
+ from ..plan import PriorityMap
+ return PriorityMap
+
+ def test_get_value(self):
+ self.assertEquals(self.pmap.get_value(), {})
+
+ def test_get(self):
+ self.assertEquals(self.pmap.get('foo'), {})
+
+ def test_set(self):
+ self.pmap.set('foo', {'bar': 1})
+ self.assertEquals(self.pmap.get('foo'), {'bar': 1})
+
+ def test_clear(self):
+ self.pmap.set('foo', {'bar': 1})
+ self.pmap.clear()
+ self.assertEquals(self.pmap.value, {})
+
+ def test_get_entry(self):
+ self.assertEquals(self.pmap.get_entry('foo', 'bar'), {})
+
+ def test_set_entry(self):
+ self.pmap.set_entry('foo', 'bar', {'baz': 1})
+ self.assertEquals(self.pmap.get_entry('foo', 'bar'), {'baz': 1})
+
+ def test_clear_entry(self):
+ self.pmap.set('foo', {'bar': 1})
+ self.pmap.clear_entry('foo')
+ self.assertEquals(self.pmap.get('foo'), {})
+
+
+class TestPriorityMapDefault(unittest.TestCase):
+
+ def setUp(self):
+ self.pmap = self._makeOne()
+
+ def tearDown(self):
+ self.pmap.clear()
+
+ def _makeOne(self):
+ from ..plan import PriorityMap
+ return PriorityMap
+
+ def test_empty(self):
+ self.pmap.load_default()
+ self.assertEquals(self.pmap.get_value(), {})
+
+ def test_load_failure(self):
+ try:
+ os.environ['ZCATALOGQUERYPLAN'] = 'Products.ZCatalog.invalid'
+ # 'Products.ZCatalog.tests.test_plan.TESTMAP'
+ self.pmap.load_default()
+ self.assertEquals(self.pmap.get_value(), {})
+ finally:
+ del os.environ['ZCATALOGQUERYPLAN']
+
+ def test_load(self):
+ from ..plan import Benchmark
+ try:
+ os.environ['ZCATALOGQUERYPLAN'] = \
+ 'Products.ZCatalog.tests.test_plan.TESTMAP'
+ self.pmap.load_default()
+ expected = {'/folder/catalog': {'index1 index2': {
+ 'index1': Benchmark(num=10, duration=2.0, hits=3, limit=True),
+ 'index2': Benchmark(num=15, duration=1.5, hits=2, limit=False),
+ }}}
+ self.assertEquals(self.pmap.get_value(), expected)
+ finally:
+ del os.environ['ZCATALOGQUERYPLAN']
+
+
+class TestReports(unittest.TestCase):
+
+ def setUp(self):
+ self.reports = self._makeOne()
+
+ def tearDown(self):
+ self.reports.clear()
+
+ def _makeOne(self):
+ from ..plan import Reports
+ return Reports
+
+ def test_value(self):
+ self.assertEquals(self.reports.value, {})
+
+ def test_lock(self):
+ from thread import LockType
+ self.assertEquals(type(self.reports.lock), LockType)
+
+
# class TestValueIndexes(unittest.TestCase):
# class TestMakeKey(unittest.TestCase):
-
class TestCatalogPlan(cleanup.CleanUp, unittest.TestCase):
def setUp(self):
@@ -63,7 +183,6 @@
# stop
# log
-
class TestCatalogReport(cleanup.CleanUp, unittest.TestCase):
def setUp(self):
@@ -71,14 +190,22 @@
from Products.ZCatalog.ZCatalog import ZCatalog
self.zcat = ZCatalog('catalog')
self.zcat.long_query_time = 0.0
- self.zcat.addIndex('num', 'FieldIndex')
- self.zcat.addIndex('big', 'FieldIndex')
- self.zcat.addIndex('numbers', 'KeywordIndex')
-
+ self._add_indexes()
for i in range(9):
obj = dummy(i)
self.zcat.catalog_object(obj, str(i))
+ def _add_indexes(self):
+ from Products.PluginIndexes.FieldIndex.FieldIndex import FieldIndex
+ from Products.PluginIndexes.KeywordIndex.KeywordIndex import \
+ KeywordIndex
+ num = FieldIndex('num')
+ self.zcat._catalog.addIndex('num', num)
+ big = FieldIndex('big')
+ self.zcat._catalog.addIndex('big', big)
+ numbers = KeywordIndex('numbers')
+ self.zcat._catalog.addIndex('numbers', numbers)
+
def test_ReportLength(self):
""" tests the report aggregation """
self.zcat.manage_resetCatalogReport()
@@ -139,9 +266,3 @@
self.assertEqual(r['query'], key)
self.assertEqual(r['counter'], 2)
-
-
-def test_suite():
- suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(TestCatalogReport))
- return suite
More information about the Zope-Checkins
mailing list