def test_api_exists(self, monkeypatch):
        for framework in FRAMEWORKS:
            for module, items in MODULES.items():
                module_obj = __import__("calvin.runtime.south.plugins.async.%s.%s" % (framework, module),
                                        globals=globals(), fromlist=[''])
                for item, info in items.items():
                    # Check for existans
                    item_obj = getattr(module_obj, item, None)
                    comp_obj = info['comp']

                    assert item_obj
                    assert type(item_obj) == type(comp_obj)

                    if info['type'] == 'class':
                        # Loop and check for attr and functions
                        # TODO: check for classes in classes ?!?
                        for item_name in dir(item_obj):
                            if not item_name.startswith("_"):
                                a_obj = getattr(item_obj, item_name)
                                c_obj = getattr(comp_obj, item_name, None)
                                if callable(a_obj):
                                    assert function_check(a_obj, c_obj)
                                else:
                                    assert type(a_obj) == type(c_obj)
                    elif info['type'] == 'function':
                        # check name and params
                        assert function_check(item_obj, comp_obj)
Retrieves the nodes own certificate from the nodes DHT-storage and
dataset/ETHPy150Open EricssonResearch/calvin-base/calvin/runtime/south/plugins/async/tests/test_frameworks.py/TestFrameworks.test_api_exists--crossover with--dataset/ETHPy150Open EricssonResearch/calvin-base/calvin/runtime/south/plugins/storage/twistedimpl/securedht/append_server.py/KademliaProtocolAppend.getOwnCert