Fix ansible-test layout path generation.
This commit is contained in:
parent
233efe0886
commit
9da5908afb
3 changed files with 24 additions and 26 deletions
|
@ -74,26 +74,18 @@ class ContentLayout(Layout):
|
||||||
root, # type: str
|
root, # type: str
|
||||||
paths, # type: t.List[str]
|
paths, # type: t.List[str]
|
||||||
plugin_paths, # type: t.Dict[str, str]
|
plugin_paths, # type: t.Dict[str, str]
|
||||||
provider_paths, # type: t.Dict[str, str]
|
|
||||||
code_path=None, # type: t.Optional[str]
|
|
||||||
collection=None, # type: t.Optional[CollectionDetail]
|
collection=None, # type: t.Optional[CollectionDetail]
|
||||||
util_path=None, # type: t.Optional[str]
|
|
||||||
unit_path=None, # type: t.Optional[str]
|
unit_path=None, # type: t.Optional[str]
|
||||||
unit_module_path=None, # type: t.Optional[str]
|
unit_module_path=None, # type: t.Optional[str]
|
||||||
unit_module_utils_path=None, # type: t.Optional[str]
|
unit_module_utils_path=None, # type: t.Optional[str]
|
||||||
integration_path=None, # type: t.Optional[str]
|
|
||||||
): # type: (...) -> None
|
): # type: (...) -> None
|
||||||
super(ContentLayout, self).__init__(root, paths)
|
super(ContentLayout, self).__init__(root, paths)
|
||||||
|
|
||||||
self.plugin_paths = plugin_paths
|
self.plugin_paths = plugin_paths
|
||||||
self.provider_paths = provider_paths
|
|
||||||
self.code_path = code_path
|
|
||||||
self.collection = collection
|
self.collection = collection
|
||||||
self.util_path = util_path
|
|
||||||
self.unit_path = unit_path
|
self.unit_path = unit_path
|
||||||
self.unit_module_path = unit_module_path
|
self.unit_module_path = unit_module_path
|
||||||
self.unit_module_utils_path = unit_module_utils_path
|
self.unit_module_utils_path = unit_module_utils_path
|
||||||
self.integration_path = integration_path
|
|
||||||
self.is_ansible = root == ANSIBLE_ROOT
|
self.is_ansible = root == ANSIBLE_ROOT
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -148,6 +140,28 @@ class CollectionDetail:
|
||||||
|
|
||||||
class LayoutProvider(PathProvider):
|
class LayoutProvider(PathProvider):
|
||||||
"""Base class for layout providers."""
|
"""Base class for layout providers."""
|
||||||
|
PLUGIN_TYPES = (
|
||||||
|
'action',
|
||||||
|
'become',
|
||||||
|
'cache',
|
||||||
|
'callback',
|
||||||
|
'cliconf',
|
||||||
|
'connection',
|
||||||
|
'doc_fragments',
|
||||||
|
'filter',
|
||||||
|
'httpapi',
|
||||||
|
'inventory',
|
||||||
|
'lookup',
|
||||||
|
'module_utils',
|
||||||
|
'modules',
|
||||||
|
'netconf',
|
||||||
|
'shell',
|
||||||
|
'strategy',
|
||||||
|
'terminal',
|
||||||
|
'test',
|
||||||
|
'vars',
|
||||||
|
)
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def create(self, root, paths): # type: (str, t.List[str]) -> ContentLayout
|
def create(self, root, paths): # type: (str, t.List[str]) -> ContentLayout
|
||||||
"""Create a layout using the given root and paths."""
|
"""Create a layout using the given root and paths."""
|
||||||
|
|
|
@ -26,11 +26,7 @@ class AnsibleLayout(LayoutProvider):
|
||||||
|
|
||||||
def create(self, root, paths): # type: (str, t.List[str]) -> ContentLayout
|
def create(self, root, paths): # type: (str, t.List[str]) -> ContentLayout
|
||||||
"""Create a Layout using the given root and paths."""
|
"""Create a Layout using the given root and paths."""
|
||||||
plugin_types = sorted(set(p.split('/')[3] for p in paths if re.search(r'^lib/ansible/plugins/[^/]+/', p)))
|
plugin_paths = dict((p, os.path.join('lib/ansible/plugins', p)) for p in self.PLUGIN_TYPES)
|
||||||
provider_types = sorted(set(p.split('/')[5] for p in paths if re.search(r'^test/lib/ansible_test/_internal/provider/[^/]+/', p)))
|
|
||||||
|
|
||||||
plugin_paths = dict((p, os.path.join('lib/ansible/plugins', p)) for p in plugin_types)
|
|
||||||
provider_paths = dict((p, os.path.join(ANSIBLE_TEST_ROOT, '_internal/provider', p)) for p in provider_types)
|
|
||||||
|
|
||||||
plugin_paths.update(dict(
|
plugin_paths.update(dict(
|
||||||
modules='lib/ansible/modules',
|
modules='lib/ansible/modules',
|
||||||
|
@ -40,11 +36,7 @@ class AnsibleLayout(LayoutProvider):
|
||||||
return ContentLayout(root,
|
return ContentLayout(root,
|
||||||
paths,
|
paths,
|
||||||
plugin_paths=plugin_paths,
|
plugin_paths=plugin_paths,
|
||||||
provider_paths=provider_paths,
|
|
||||||
code_path='lib/ansible',
|
|
||||||
util_path='test/utils',
|
|
||||||
unit_path='test/units',
|
unit_path='test/units',
|
||||||
unit_module_path='test/units/modules',
|
unit_module_path='test/units/modules',
|
||||||
unit_module_utils_path='test/units/module_utils',
|
unit_module_utils_path='test/units/module_utils',
|
||||||
integration_path='test/integration',
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -29,11 +29,7 @@ class CollectionLayout(LayoutProvider):
|
||||||
|
|
||||||
def create(self, root, paths): # type: (str, t.List[str]) -> ContentLayout
|
def create(self, root, paths): # type: (str, t.List[str]) -> ContentLayout
|
||||||
"""Create a Layout using the given root and paths."""
|
"""Create a Layout using the given root and paths."""
|
||||||
plugin_types = sorted(set(p.split('/')[1] for p in paths if re.search(r'^plugins/[^/]+/', p)))
|
plugin_paths = dict((p, os.path.join('plugins', p)) for p in self.PLUGIN_TYPES)
|
||||||
provider_types = sorted(set(p.split('/')[2] for p in paths if re.search(r'^test/provider/[^/]+/', p)))
|
|
||||||
|
|
||||||
plugin_paths = dict((p, os.path.join('plugins', p)) for p in plugin_types)
|
|
||||||
provider_paths = dict((p, os.path.join('test/provider', p)) for p in provider_types)
|
|
||||||
|
|
||||||
collection_root = os.path.dirname(os.path.dirname(root))
|
collection_root = os.path.dirname(os.path.dirname(root))
|
||||||
collection_dir = os.path.relpath(root, collection_root)
|
collection_dir = os.path.relpath(root, collection_root)
|
||||||
|
@ -45,17 +41,13 @@ class CollectionLayout(LayoutProvider):
|
||||||
return ContentLayout(root,
|
return ContentLayout(root,
|
||||||
paths,
|
paths,
|
||||||
plugin_paths=plugin_paths,
|
plugin_paths=plugin_paths,
|
||||||
provider_paths=provider_paths,
|
|
||||||
code_path='',
|
|
||||||
collection=CollectionDetail(
|
collection=CollectionDetail(
|
||||||
name=collection_name,
|
name=collection_name,
|
||||||
namespace=collection_namespace,
|
namespace=collection_namespace,
|
||||||
root=collection_root,
|
root=collection_root,
|
||||||
prefix=collection_prefix,
|
prefix=collection_prefix,
|
||||||
),
|
),
|
||||||
util_path='test/util',
|
|
||||||
unit_path='test/unit',
|
unit_path='test/unit',
|
||||||
unit_module_path='test/unit/plugins/modules',
|
unit_module_path='test/unit/plugins/modules',
|
||||||
unit_module_utils_path='test/unit/plugins/module_utils',
|
unit_module_utils_path='test/unit/plugins/module_utils',
|
||||||
integration_path='test/integration',
|
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue