##### SUMMARY

Support collection roles as integration test targets.

Now that https://github.com/ansible/ansible/issues/59462 has been merged, ansible-test can be updated to support running integration test targets that are collection roles.

The planned convention is to look for targets under `roles/test/` and allow use of target-specific plugins from `plugins/{plugin_type}/test/{target_name}/`.

##### ISSUE TYPE

Feature Idea

##### COMPONENT NAME

ansible-test

##### ADDITIONAL INFORMATION

This will allow integration test targets to be written using collections instead of pre-collection roles.
"""True if the test supports skip entries."""
        return not self.all_targets and not self.no_targets
    @property
    def all_targets(self):  
        """True if test targets will not be filtered using includes, excludes, requires or changes. Mutually exclusive with no_targets."""
        return False
    @property
    def no_targets(self):  
        """True if the test does not use test targets. Mutually exclusive with all_targets."""
        return False
    @property
    def include_directories(self):  
        """True if the test targets should include directories."""
        return False
    @property
    def include_symlinks(self):  
        """True if the test targets should include symlinks."""
        return False
    @property
    def supported_python_versions(self):  
        """A tuple of supported Python versions or None if the test does not depend on specific Python versions."""
        return tuple(python_version for python_version in SUPPORTED_PYTHON_VERSIONS if python_version.startswith('3.'))
    def filter_targets(self, targets):  
        """Return the given list of test targets, filtered to include only those relevant for the test."""
        if self.no_targets:
            return []
        raise NotImplementedError('Sanity test "%s" must implement "filter_targets" or set "no_targets" to True.' % self.name)
class SanityCodeSmellTest(SanityTest):