f5d829392a
* Remove .keep files from test/results/ dirs. * Remove classification of test/results/ dir. * Add results_relative to data context. * Use variables in delegation paths. * Standardize file writing and results paths. * Fix issues reported by PyCharm. * Clean up invocation of coverage command. It now runs through the injector. * Hack to allow intercept_command in cover.py. * Simplify git ignore for test results. * Use test result tmp dir instead of cache dir. * Remove old .pytest_cache reference. * Fix unit test docker delegation. * Show HTML report link. * Clean up more results references. * Move import sanity test output to .tmp dir. * Exclude test results dir from coverage. * Fix import sanity test lib paths. * Fix hard-coded import test paths. * Fix most hard-coded integration test paths. * Fix PyCharm warnings. * Fix import placement. * Fix integration test dir path. * Fix Shippable scripts. * Fix Shippable matrix check. * Overhaul key pair management.
51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
"""Layout provider for Ansible collections."""
|
|
from __future__ import (absolute_import, division, print_function)
|
|
__metaclass__ = type
|
|
|
|
import os
|
|
|
|
from ... import types as t
|
|
|
|
from . import (
|
|
ContentLayout,
|
|
LayoutProvider,
|
|
CollectionDetail,
|
|
)
|
|
|
|
|
|
class CollectionLayout(LayoutProvider):
|
|
"""Layout provider for Ansible collections."""
|
|
__module_path = 'plugins/modules'
|
|
__unit_path = 'test/unit'
|
|
|
|
@staticmethod
|
|
def is_content_root(path): # type: (str) -> bool
|
|
"""Return True if the given path is a content root for this provider."""
|
|
if os.path.basename(os.path.dirname(os.path.dirname(path))) == 'ansible_collections':
|
|
return True
|
|
|
|
return False
|
|
|
|
def create(self, root, paths): # type: (str, t.List[str]) -> ContentLayout
|
|
"""Create a Layout using the given root and paths."""
|
|
plugin_paths = dict((p, os.path.join('plugins', p)) for p in self.PLUGIN_TYPES)
|
|
|
|
collection_root = os.path.dirname(os.path.dirname(root))
|
|
collection_dir = os.path.relpath(root, collection_root)
|
|
collection_namespace, collection_name = collection_dir.split(os.sep)
|
|
|
|
collection_root = os.path.dirname(collection_root)
|
|
|
|
return ContentLayout(root,
|
|
paths,
|
|
plugin_paths=plugin_paths,
|
|
collection=CollectionDetail(
|
|
name=collection_name,
|
|
namespace=collection_namespace,
|
|
root=collection_root,
|
|
),
|
|
integration_path='test/integration',
|
|
unit_path='test/unit',
|
|
unit_module_path='test/unit/plugins/modules',
|
|
unit_module_utils_path='test/unit/plugins/module_utils',
|
|
)
|