mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-10-23 04:24:00 -07:00
Improve handling of integration test aliases. (#38698)
* Include change classification data in metadata. * Add support for disabled tests. * Add support for unstable tests. * Add support for unsupported tests. * Overhaul integration aliases sanity test. * Update Shippable scripts to handle unstable tests. * Mark unstable Azure tests. * Mark unstable Windows tests. * Mark disabled tests.
This commit is contained in:
parent
26fa3adeab
commit
8a223009ca
39 changed files with 502 additions and 67 deletions
|
@ -21,6 +21,7 @@ class Metadata(object):
|
|||
self.changes = {} # type: dict [str, tuple[tuple[int, int]]
|
||||
self.cloud_config = None # type: dict [str, str]
|
||||
self.instance_config = None # type: list[dict[str, str]]
|
||||
self.change_description = None # type: ChangeDescription
|
||||
|
||||
if is_shippable():
|
||||
self.ci_provider = 'shippable'
|
||||
|
@ -57,6 +58,7 @@ class Metadata(object):
|
|||
cloud_config=self.cloud_config,
|
||||
instance_config=self.instance_config,
|
||||
ci_provider=self.ci_provider,
|
||||
change_description=self.change_description.to_dict(),
|
||||
)
|
||||
|
||||
def to_file(self, path):
|
||||
|
@ -92,5 +94,60 @@ class Metadata(object):
|
|||
metadata.cloud_config = data['cloud_config']
|
||||
metadata.instance_config = data['instance_config']
|
||||
metadata.ci_provider = data['ci_provider']
|
||||
metadata.change_description = ChangeDescription.from_dict(data['change_description'])
|
||||
|
||||
return metadata
|
||||
|
||||
|
||||
class ChangeDescription(object):
|
||||
"""Description of changes."""
|
||||
def __init__(self):
|
||||
self.command = '' # type: str
|
||||
self.changed_paths = [] # type: list[str]
|
||||
self.deleted_paths = [] # type: list[str]
|
||||
self.regular_command_targets = {} # type: dict[str, list[str]]
|
||||
self.focused_command_targets = {} # type: dict[str, list[str]]
|
||||
self.no_integration_paths = [] # type: list[str]
|
||||
|
||||
@property
|
||||
def targets(self):
|
||||
"""
|
||||
:rtype: list[str] | None
|
||||
"""
|
||||
return self.regular_command_targets.get(self.command)
|
||||
|
||||
@property
|
||||
def focused_targets(self):
|
||||
"""
|
||||
:rtype: list[str] | None
|
||||
"""
|
||||
return self.focused_command_targets.get(self.command)
|
||||
|
||||
def to_dict(self):
|
||||
"""
|
||||
:rtype: dict[str, any]
|
||||
"""
|
||||
return dict(
|
||||
command=self.command,
|
||||
changed_paths=self.changed_paths,
|
||||
deleted_paths=self.deleted_paths,
|
||||
regular_command_targets=self.regular_command_targets,
|
||||
focused_command_targets=self.focused_command_targets,
|
||||
no_integration_paths=self.no_integration_paths,
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def from_dict(data):
|
||||
"""
|
||||
:param data: dict[str, any]
|
||||
:rtype: ChangeDescription
|
||||
"""
|
||||
changes = ChangeDescription()
|
||||
changes.command = data['command']
|
||||
changes.changed_paths = data['changed_paths']
|
||||
changes.deleted_paths = data['deleted_paths']
|
||||
changes.regular_command_targets = data['regular_command_targets']
|
||||
changes.focused_command_targets = data['focused_command_targets']
|
||||
changes.no_integration_paths = data['no_integration_paths']
|
||||
|
||||
return changes
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue