Index: /quintagroup.transmogrifier/trunk/quintagroup/transmogrifier/configure.zcml
===================================================================
--- /quintagroup.transmogrifier/trunk/quintagroup/transmogrifier/configure.zcml (revision 1380)
+++ /quintagroup.transmogrifier/trunk/quintagroup/transmogrifier/configure.zcml (revision 1381)
@@ -110,4 +110,10 @@
/>
+
+
>> flushcache = """
+... [transmogrifier]
+... pipeline =
+... source
+... flushcache
+...
+... [source]
+... blueprint = collective.transmogrifier.sections.tests.rangesource
+... size = 10
+...
+... [flushcache]
+... blueprint = quintagroup.transmogrifier.flushcache
+... every = 3
+... """
+>>> registerConfig(u'quintagroup.transmogrifier.tests.flushcache', flushcache)
+
+We'll show caching is flushed using dedicated variable on dummy plone instance
+called 'cacheMinimized'. Which is a number of caches performed.
+
+>>> transmogrifier(u'quintagroup.transmogrifier.tests.flushcache')
+>>> transmogrifier.context.cacheMinimized
+3
Index: /quintagroup.transmogrifier/trunk/quintagroup/transmogrifier/tests.py
===================================================================
--- /quintagroup.transmogrifier/trunk/quintagroup/transmogrifier/tests.py (revision 1380)
+++ /quintagroup.transmogrifier/trunk/quintagroup/transmogrifier/tests.py (revision 1381)
@@ -927,4 +927,39 @@
test.globs['transmogrifier'].context = test.globs['plone']
+def flushCacheSetUp(test):
+ sectionsSetUp(test)
+
+ class DataBase(object):
+ def __init__(self, context):
+ self.context = context
+
+ def cacheMinimize(self):
+ self.context.cacheMinimized += 1
+
+ def _getDB(self):
+ return self
+
+ class DataBasePanel(object):
+ def __init__(self, context):
+ self.context = context
+
+ def getDatabaseNames(self):
+ return ('main',)
+
+ def __getitem__(self, key):
+ return DataBase(self.context)
+
+ class ControlPanel(object):
+ def __init__(self, context):
+ self.Database = DataBasePanel(context)
+
+ class MockPortal(object):
+ def __init__(self):
+ self.cacheMinimized = 0
+ self.Control_Panel = ControlPanel(self)
+
+ test.globs['plone'] = MockPortal()
+ test.globs['transmogrifier'].context = test.globs['plone']
+
def test_suite():
import sys
@@ -967,4 +1002,7 @@
'catalogsource.txt',
setUp=catalogSourceSetUp, tearDown=tearDown),
+ doctest.DocFileSuite(
+ 'flushcache.txt',
+ setUp=flushCacheSetUp, tearDown=tearDown),
))
return suite