
currently an invalid collection will error out on docs sanity, but this is misleading since the problem is that the collection name itself is invalid, a previous test verifying this should be introduced to avoid confusion.

example currently:
```
Running sanity test 'ansible-doc' with Python 3.7
ERROR: Command "ansible-doc -t module cyberark.ansible-security-automation-collection.cyberark_account cyberark.ansible-security-automation-collection.cyberark_authentication cyberark.ansible-security-automation-collection.cyberark_credential cyberark.ansible-security-automation-collection.cyberark_user" returned exit status 250.
>>> Standard Error
[WARNING]: module cyberark.ansible-security-automation-collection.cyberark_account not found in: /dev/null:/home/abehl/work/src/anshul_ansible/ansible/lib/ansible/modules
ERROR! Unexpected Exception, this is probably a bug: cannot unpack non-iterable NoneType object
```
##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
ansible-test

"""
    Load plugins of the specified type and track them in the specified database.
    Only plugins which have already been imported will be loaded.
    """
    plugins = dict((sc.__module__.rsplit('.', 1)[1], sc) for sc in get_subclasses(base_type))  
    for plugin in plugins:
        database[plugin] = plugins[plugin]
def load_module(path, name):  
    """Load a Python module using the given name and path."""
    if name in sys.modules:
        return
    spec = importlib.util.spec_from_file_location(name, path)
    module = importlib.util.module_from_spec(spec)
    sys.modules[name] = module
    
    spec.loader.exec_module(module)
def sanitize_host_name(name):
    """Return a sanitized version of the given name, suitable for use as a hostname."""
    return re.sub('[^A-Za-z0-9]+', '-', name)[:63].strip('-')
@cache
def get_host_ip():