##### SUMMARY
```
(ansible_base) [vagrant@centos8 ~]$ ansible-test --version
ERROR: The current working directory must be at or below:

 - an Ansible collection: {...}/ansible_collections/{namespace}/{collection}/

Current working directory: /home/vagrant
```

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
ansible-test

"""Return a tuple of Ansible source files with both absolute and relative paths."""
        if not ANSIBLE_SOURCE_ROOT:
            sources = []
            source_provider = InstalledSource(ANSIBLE_LIB_ROOT)
            sources.extend((os.path.join(source_provider.root, path), os.path.join('lib', 'ansible', path))
                           for path in source_provider.get_paths(source_provider.root))
            source_provider = InstalledSource(ANSIBLE_TEST_ROOT)
            sources.extend((os.path.join(source_provider.root, path), os.path.join('test', 'lib', 'ansible_test', path))
                           for path in source_provider.get_paths(source_provider.root))
            return tuple(sources)
        if self.content.is_ansible:
            return tuple((os.path.join(self.content.root, path), path) for path in self.content.all_files())
        try:
            source_provider = find_path_provider(SourceProvider, self.__source_providers, ANSIBLE_SOURCE_ROOT, False)
        except ProviderNotFoundForPath:
            source_provider = UnversionedSource(ANSIBLE_SOURCE_ROOT)
        return tuple((os.path.join(source_provider.root, path), path) for path in source_provider.get_paths(source_provider.root))
    @property
    def ansible_source(self):  
        """Return a tuple of Ansible source files with both absolute and relative paths."""
        if not self.__ansible_source:
            self.__ansible_source = self.__create_ansible_source()
        return self.__ansible_source
    def register_payload_callback(self, callback):  
        """Register the given payload callback."""
        self.payload_callbacks.append(callback)
@cache
def data_context():