Ensure that the required entries (set or keys of a dict) are present in the test set or keys
    of the test dict.

    :param set|dict test_object: The test set or dict
    :param set|dict required_object: The entries that need to be present in the test set (keys of
            input dict if input is dict)
    :param str test_set_name: Optional name for the set
    :raises ParameterError: If required entry doesnt exist

def _ensure_set_contains(test_object, required_object, test_set_name=None):
    """
    Ensure that the required entries (set or keys of a dict) are present in the test set or keys
    of the test dict.

    :param set|dict test_object: The test set or dict
    :param set|dict required_object: The entries that need to be present in the test set (keys of
            input dict if input is dict)
    :param str test_set_name: Optional name for the set
    :raises ParameterError: If required entry doesnt exist
    """
    assert isinstance(test_object, (set, dict)), '%s,%s' % (test_object, test_set_name)
    assert isinstance(required_object, (set, dict)), '%s,%s' % (required_object, test_set_name)
    # set(dict) = set of keys of the dict
    test_set = set(test_object)
    required_set = set(required_object)
    set_name = ' ' if test_set_name is None else ' entry "%s" of ' % test_set_name
    missing_opts = required_set.difference(test_set)
    if len(missing_opts) > 0:
        raise ParameterError('The following entries are missing in%sthe config file:\n%s'
                             % (set_name, '\n'.join(missing_opts)))