Source code for safe.storage.utilities_test

"""**Utilities to to support test suite**
"""

import types


def _same_API(X, Y, exclude=None):
    """Check that public methods of X also exist in Y
    """

    if exclude is None:
        exclude = []

    for name in dir(X):

        # Skip internal symbols
        if name.startswith('_'):
            continue

        # Skip explicitly excluded methods
        if name in exclude:
            continue

        # Check membership of methods
        attr = getattr(X, name)
        if isinstance(attr, types.MethodType):
            if name not in dir(Y):
                msg = ('Method "%s" of "%s" was not found in "%s"'
                       % (name, X, Y))
                raise Exception(msg)


[docs]def same_API(X, Y, exclude=None): """Check that public methods of X and Y are the same. Args: * X, Y: Python objects * exclude: List of names to exclude from comparison or None """ _same_API(X, Y, exclude=exclude) _same_API(Y, X, exclude=exclude) return True