view test/mocknull.py @ 6330:fbce23af2120

Test case for backend not defined; remove unreachable code Verify that error is raised in configuration.py if backend is not defined in config.ini. Remove unreachable code from instance.py that detects that backend is not defined. It hasn't been reachable since version 1.6.1 because the configuration.py module made the backend option mandatory. Hence configuration.py raises the error and never passes control back to the unreachable code.
author John Rouillard <rouilj@ieee.org>
date Tue, 02 Mar 2021 00:08:51 -0500
parents b1ab8bd18e79
children
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 __bool__(self): return False
    # Python 2 compatibility:
    __nonzero__ = __bool__
    def __contains__(self, key): return False
    def __eq__(self, rhs): return False
    def __ne__(self, rhs): return False
    def __str__(self): return ''
    def __repr__(self): return '<MockNull 0x%x>'%id(self)
    def gettext(self, str): return str
    _ = gettext
    def get(self, name, default=None):
        try:
            return self.__dict__[name.lower()]
        except KeyError:
            return default

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