##### SUMMARY

Move the remaining files needed by `ansible-test` into the `test/lib/ansible_test/` directory. This is required to implement: https://github.com/ansible/ansible/issues/59884

##### ISSUE TYPE

Feature Idea

##### COMPONENT NAME

ansible-test

"""Exception generated when a source root is found below a layout root."""
    def __init__(self, source_root, layout_root):  
        super(UnexpectedSourceRoot, self).__init__('Source root "%s" cannot be below layout root "%s".' % (source_root, layout_root))
        self.source_root = source_root
        self.layout_root = layout_root
class DataContext:
    """Data context providing details about the current execution environment for ansible-test."""
    def __init__(self):
        content_path = os.environ.get('ANSIBLE_TEST_CONTENT_ROOT')
        current_path = os.getcwd()
        self.__layout_providers = get_path_provider_classes(LayoutProvider)
        self.__source_providers = get_path_provider_classes(SourceProvider)
        self.payload_callbacks = []  
        if content_path:
            content = self.create_content_layout(self.__layout_providers, self.__source_providers, content_path, False)
            if content.is_ansible:
                install = InstallLayout(ANSIBLE_ROOT, content.all_files())
            else:
                install = None
        elif is_subdir(current_path, ANSIBLE_ROOT):
            content = self.create_content_layout(self.__layout_providers, self.__source_providers, ANSIBLE_ROOT, False)
            install = InstallLayout(ANSIBLE_ROOT, content.all_files())
        else:
            content = self.create_content_layout(self.__layout_providers, self.__source_providers, current_path, True)
            install = None
        self.__install = install  
        self.content = content  
    @staticmethod
    def create_content_layout(layout_providers,