view test/mocknull.py @ 4652:dfbc0cfa9811

Add an interface to register clearCache callbacks in roundupdb. Sometimes complicated computations may require an application cache. This application can now register a callback to clear the application cache, because roundup knows better when to clear it (usually when a transaction ends, either with rollback or with commit). The interface for this is currently considered experimental. The current interface is registerClearCacheCallback(self, method, param) where method is called with param as the only parameter.
author Ralf Schlatterbeck <rsc@runtux.com>
date Fri, 17 Aug 2012 15:30:36 +0200
parents 79fd8537ae3b
children 3757449e00c4
line wrap: on
line source


class MockNull:
    def __init__(self, **kwargs):
        for key, value in kwargs.items():
            self.__dict__[key] = value

    def __call__(self, *args, **kwargs): return MockNull()
    def __getattr__(self, name):
        # This allows assignments which assume all intermediate steps are Null
        # objects if they don't exist yet.
        #
        # For example (with just 'client' defined):
        #
        # client.db.config.TRACKER_WEB = 'BASE/'
        self.__dict__[name] = MockNull()
        return getattr(self, name)

    def __getitem__(self, key): return self
    def __nonzero__(self): return 0
    def __str__(self): return ''
    def __repr__(self): return '<MockNull 0x%x>'%id(self)
    def gettext(self, str): return str
    _ = gettext

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