Hello community,
here is the log from the commit of package python3-img-proof for
openSUSE:Factory checked in at 2020-08-07 14:10:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-img-proof (Old)
and /work/SRC/openSUSE:Factory/.python3-img-proof.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-img-proof"
Fri Aug 7 14:10:17 2020 rev:12 rq:824737 version:5.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-img-proof/python3-img-proof.changes
2020-06-22 17:46:50.798024067 +0200
+++
/work/SRC/openSUSE:Factory/.python3-img-proof.new.3399/python3-img-proof.changes
2020-08-07 14:10:39.110150953 +0200
@@ -1,0 +2,10 @@
+Thu Aug 6 20:56:41 UTC 2020 - Sean Marlow <[email protected]>
+
+- Update to v5.3.0 (2020-08-06)
+ + Run every test case individually.
+ + Update getting started doc.
+ + Update list of services for GCE and Azure images.
+ + Allow no default test dirs in config.
+ + Add prefix name option.
+
+-------------------------------------------------------------------
Old:
----
img-proof-5.2.0.tar.gz
New:
----
img-proof-5.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-img-proof.spec ++++++
--- /var/tmp/diff_new_pack.Yr24BT/_old 2020-08-07 14:10:42.858151375 +0200
+++ /var/tmp/diff_new_pack.Yr24BT/_new 2020-08-07 14:10:42.862151376 +0200
@@ -18,7 +18,7 @@
%bcond_without test
Name: python3-img-proof
-Version: 5.2.0
+Version: 5.3.0
Release: 0
Summary: Command line and API for testing custom images
License: GPL-3.0-or-later
++++++ img-proof-5.2.0.tar.gz -> img-proof-5.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/CHANGES.md
new/img-proof-5.3.0/CHANGES.md
--- old/img-proof-5.2.0/CHANGES.md 2020-06-07 21:09:18.000000000 +0200
+++ new/img-proof-5.3.0/CHANGES.md 2020-08-06 22:46:08.000000000 +0200
@@ -1,3 +1,17 @@
+v5.3.0 (2020-08-06)
+===================
+
+- Update getting started doc.
+ [\#255](https://github.com/SUSE-Enceladus/ipa/pull/255)
+- Update list of services for GCE and Azure images.
+ [\#256](https://github.com/SUSE-Enceladus/ipa/pull/256)
+- Allow no default test dirs in config.
+ [\#257](https://github.com/SUSE-Enceladus/ipa/pull/257)
+- Add prefix name option.
+ [\#258](https://github.com/SUSE-Enceladus/ipa/pull/258)
+- Run every test case individually.
+ [\#259](https://github.com/SUSE-Enceladus/ipa/pull/259)
+
v5.2.0 (2020-06-07)
===================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/PKG-INFO new/img-proof-5.3.0/PKG-INFO
--- old/img-proof-5.2.0/PKG-INFO 2020-06-07 21:10:09.000000000 +0200
+++ new/img-proof-5.3.0/PKG-INFO 2020-08-06 22:47:15.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: img-proof
-Version: 5.2.0
+Version: 5.3.0
Summary: Package for automated testing of cloud images.
Home-page: https://github.com/SUSE-Enceladus/img-proof
Author: SUSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/img_proof/__init__.py
new/img-proof-5.3.0/img_proof/__init__.py
--- old/img-proof-5.2.0/img_proof/__init__.py 2020-06-07 21:09:18.000000000
+0200
+++ new/img-proof-5.3.0/img_proof/__init__.py 2020-08-06 22:46:08.000000000
+0200
@@ -22,4 +22,4 @@
__author__ = """SUSE"""
__email__ = '[email protected]'
-__version__ = '5.2.0'
+__version__ = '5.3.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/img_proof/ipa_azure.py
new/img-proof-5.3.0/img_proof/ipa_azure.py
--- old/img-proof-5.2.0/img_proof/ipa_azure.py 2020-06-07 21:09:18.000000000
+0200
+++ new/img-proof-5.3.0/img_proof/ipa_azure.py 2020-08-06 22:46:08.000000000
+0200
@@ -49,7 +49,7 @@
inject=None,
instance_type=None,
log_level=None,
- no_default_test_dirs=False,
+ no_default_test_dirs=None,
cloud_config=None,
region=None,
results_dir=None,
@@ -66,7 +66,9 @@
collect_vm_info=None,
enable_secure_boot=None,
enable_uefi=None,
- log_callback=None
+ log_callback=None,
+ prefix_name=None,
+ retry_count=None
):
"""Initialize Azure Cloud class."""
super(AzureCloud, self).__init__(
@@ -95,7 +97,9 @@
subnet_id,
enable_secure_boot,
enable_uefi,
- log_callback
+ log_callback,
+ prefix_name,
+ retry_count
)
self.vnet_name = vnet_name or self.ipa_config['vnet_name']
@@ -424,9 +428,7 @@
"""
Create new test instance in a resource group with the same name.
"""
- self.running_instance_id = ipa_utils.generate_instance_name(
- 'azure-img-proof-test'
- )
+ self.running_instance_id = self._generate_instance_name()
self.logger.debug('ID of instance: %s' % self.running_instance_id)
self._set_default_resource_names()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/img_proof/ipa_cloud.py
new/img-proof-5.3.0/img_proof/ipa_cloud.py
--- old/img-proof-5.2.0/img_proof/ipa_cloud.py 2020-06-07 21:09:18.000000000
+0200
+++ new/img-proof-5.3.0/img_proof/ipa_cloud.py 2020-08-06 22:46:08.000000000
+0200
@@ -30,6 +30,7 @@
from collections import ChainMap, defaultdict
from datetime import datetime
+from distutils.util import strtobool
from img_proof import ipa_utils
from img_proof.ipa_constants import (
@@ -58,7 +59,9 @@
'log_level': logging.INFO,
'results_dir': IPA_RESULTS_PATH,
'test_files': set(),
- 'timeout': 600
+ 'timeout': 600,
+ 'no_default_test_dirs': False,
+ 'retry_count': 3
}
@@ -84,7 +87,7 @@
inject=None,
instance_type=None,
log_level=None,
- no_default_test_dirs=False,
+ no_default_test_dirs=None,
cloud_config=None,
region=None,
results_dir=None,
@@ -98,7 +101,9 @@
subnet_id=None,
enable_secure_boot=None,
enable_uefi=None,
- log_callback=None
+ log_callback=None,
+ prefix_name=None,
+ retry_count=None
):
"""Initialize base cloud framework class."""
super(IpaCloud, self).__init__()
@@ -160,6 +165,11 @@
self.subnet_id = self.ipa_config['subnet_id']
self.enable_secure_boot = self.ipa_config['enable_secure_boot']
self.enable_uefi = self.ipa_config['enable_uefi']
+ self.no_default_test_dirs = bool(
+ strtobool(str(self.ipa_config['no_default_test_dirs']))
+ )
+ self.prefix_name = self.ipa_config['prefix_name']
+ self.retry_count = int(self.ipa_config['retry_count'])
if self.enable_secure_boot and not self.enable_uefi:
self.enable_uefi = True
@@ -193,7 +203,7 @@
)
}
- self._parse_test_files(test_dirs, no_default_test_dirs)
+ self._parse_test_files(test_dirs, self.no_default_test_dirs)
def _get_instance(self):
raise NotImplementedError(NOT_IMPLEMENTED)
@@ -239,26 +249,18 @@
def _log_info(self):
"""Output test run information to top of log file."""
- if self.cloud == 'ssh':
- self.results['info'] = {
- 'platform': self.cloud,
- 'distro': self.distro_name,
- 'image': self.instance_ip,
- 'timestamp': self.time_stamp,
- 'log_file': self.log_file,
- 'results_file': self.results_file
- }
- else:
- self.results['info'] = {
- 'platform': self.cloud,
- 'region': self.region,
- 'distro': self.distro_name,
- 'image': self.image_id,
- 'instance': self.running_instance_id,
- 'timestamp': self.time_stamp,
- 'log_file': self.log_file,
- 'results_file': self.results_file
- }
+ self.results['info'] = {
+ 'platform': self.cloud,
+ 'distro': self.distro_name,
+ 'image': self.instance_ip,
+ 'timestamp': self.time_stamp,
+ 'log_file': self.log_file,
+ 'results_file': self.results_file
+ }
+
+ if self.cloud != 'ssh':
+ self.results['info']['region'] = self.region
+ self.results['info']['instance'] = self.running_instance_id
self._write_to_log(
'\n'.join(
@@ -336,8 +338,8 @@
}
self._merge_results(result)
- def _run_tests(self, tests, ssh_config):
- """Run the test suite on the image."""
+ def _run_test(self, test, ssh_config):
+ """Run the test on the image."""
options = []
if self.early_exit:
options.append('-x')
@@ -346,7 +348,7 @@
' '.join(options),
ssh_config,
self.instance_ip,
- ' '.join(tests)
+ test
)
# Print output captured to log file for test run
@@ -358,8 +360,16 @@
print('Arguments:\n{}\n'.format(args))
cmds = shlex.split(args)
- plugin = Report()
- result = pytest.main(cmds, plugins=[plugin])
+ num_retries = 0
+
+ while num_retries < self.retry_count:
+ plugin = Report()
+ result = pytest.main(cmds, plugins=[plugin])
+
+ if result != 0:
+ num_retries += 1
+ else:
+ break
# If pytest has an error there will be no report but
# we still want to process the error as a failure.
@@ -634,6 +644,19 @@
)
self._terminate_instance()
+ def _generate_instance_name(self):
+ """
+ Generate a new instance name with a random string appended.
+
+ If a prefix is supplied add to the beginning of instance name.
+ """
+ instance_name = ipa_utils.generate_instance_name('img-proof')
+
+ if self.prefix_name:
+ instance_name = '-'.join([self.prefix_name, instance_name])
+
+ return instance_name
+
def get_console_log(self):
"""
Return console log output if it is available.
@@ -822,12 +845,12 @@
)
status = status or result
- elif isinstance(item, set):
- self.logger.info('Running tests %s' % ' '.join(item))
+ elif isinstance(item, str):
+ self.logger.info('Running test {name}'.format(name=item))
with open(self.log_file, 'a') as log_file:
with ipa_utils.redirect_output(log_file):
# Run tests
- result = self._run_tests(item, ssh_config)
+ result = self._run_test(item, ssh_config)
status = status or result
else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/img_proof/ipa_controller.py
new/img-proof-5.3.0/img_proof/ipa_controller.py
--- old/img-proof-5.2.0/img_proof/ipa_controller.py 2020-06-07
21:09:18.000000000 +0200
+++ new/img-proof-5.3.0/img_proof/ipa_controller.py 2020-08-06
22:46:08.000000000 +0200
@@ -79,7 +79,9 @@
oci_user_id=None,
enable_secure_boot=None,
enable_uefi=None,
- log_callback=None
+ log_callback=None,
+ prefix_name=None,
+ retry_count=None
):
"""Creates a cloud framework instance and initiates testing."""
kwargs = {
@@ -107,7 +109,9 @@
'collect_vm_info': collect_vm_info,
'enable_secure_boot': enable_secure_boot,
'enable_uefi': enable_uefi,
- 'log_callback': log_callback
+ 'log_callback': log_callback,
+ 'prefix_name': prefix_name,
+ 'retry_count': retry_count
}
cloud_name = cloud_name.lower()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/img_proof/ipa_ec2.py
new/img-proof-5.3.0/img_proof/ipa_ec2.py
--- old/img-proof-5.2.0/img_proof/ipa_ec2.py 2020-06-07 21:09:18.000000000
+0200
+++ new/img-proof-5.3.0/img_proof/ipa_ec2.py 2020-08-06 22:46:08.000000000
+0200
@@ -53,7 +53,7 @@
inject=None,
instance_type=None,
log_level=None,
- no_default_test_dirs=False,
+ no_default_test_dirs=None,
cloud_config=None,
region=None,
results_dir=None,
@@ -70,7 +70,9 @@
collect_vm_info=None,
enable_secure_boot=None,
enable_uefi=None,
- log_callback=None
+ log_callback=None,
+ prefix_name=None,
+ retry_count=None
):
"""Initialize EC2 cloud framework class."""
super(EC2Cloud, self).__init__(
@@ -99,7 +101,9 @@
subnet_id,
enable_secure_boot,
enable_uefi,
- log_callback
+ log_callback,
+ prefix_name,
+ retry_count
)
# Get command line values that are not None
cmd_line_values = self._get_non_null_values(locals())
@@ -234,7 +238,7 @@
"""Launch an instance of the given image."""
resource = self._connect()
- instance_name = ipa_utils.generate_instance_name('ec2-img-proof-test')
+ instance_name = self._generate_instance_name()
kwargs = {
'InstanceType': self.instance_type or EC2_DEFAULT_TYPE,
'ImageId': self.image_id,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/img_proof/ipa_gce.py
new/img-proof-5.3.0/img_proof/ipa_gce.py
--- old/img-proof-5.2.0/img_proof/ipa_gce.py 2020-06-07 21:09:18.000000000
+0200
+++ new/img-proof-5.3.0/img_proof/ipa_gce.py 2020-08-06 22:46:08.000000000
+0200
@@ -94,7 +94,7 @@
inject=None,
instance_type=None,
log_level=None,
- no_default_test_dirs=False,
+ no_default_test_dirs=None,
cloud_config=None,
region=None,
results_dir=None,
@@ -110,7 +110,9 @@
image_project=None,
enable_secure_boot=None,
enable_uefi=None,
- log_callback=None
+ log_callback=None,
+ prefix_name=None,
+ retry_count=None
):
super(GCECloud, self).__init__(
'gce',
@@ -138,7 +140,9 @@
subnet_id,
enable_secure_boot,
enable_uefi,
- log_callback
+ log_callback,
+ prefix_name,
+ retry_count
)
self.service_account_file = (
@@ -393,9 +397,7 @@
def _launch_instance(self):
"""Launch an instance of the given image."""
- self.running_instance_id = ipa_utils.generate_instance_name(
- 'gce-img-proof-test'
- )
+ self.running_instance_id = self._generate_instance_name()
self.logger.debug('ID of instance: %s' % self.running_instance_id)
machine_type = self._get_instance_type(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/img_proof/ipa_oci.py
new/img-proof-5.3.0/img_proof/ipa_oci.py
--- old/img-proof-5.2.0/img_proof/ipa_oci.py 2020-06-07 21:09:18.000000000
+0200
+++ new/img-proof-5.3.0/img_proof/ipa_oci.py 2020-08-06 22:46:08.000000000
+0200
@@ -46,7 +46,7 @@
inject=None,
instance_type=None,
log_level=None,
- no_default_test_dirs=False,
+ no_default_test_dirs=None,
cloud_config=None,
region=None,
results_dir=None,
@@ -66,7 +66,9 @@
oci_user_id=None,
enable_secure_boot=None,
enable_uefi=None,
- log_callback=None
+ log_callback=None,
+ prefix_name=None,
+ retry_count=None
):
"""Initialize OCI cloud framework class."""
super(OCICloud, self).__init__(
@@ -95,7 +97,9 @@
subnet_id,
enable_secure_boot,
enable_uefi,
- log_callback
+ log_callback,
+ prefix_name,
+ retry_count
)
self.availability_domain = (
@@ -440,7 +444,7 @@
def _launch_instance(self):
"""Launch an instance of the given image."""
- self.display_name = ipa_utils.generate_instance_name('oci-ipa-test')
+ self.display_name = self._generate_instance_name()
try:
if not self.subnet_id:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/img_proof/ipa_utils.py
new/img-proof-5.3.0/img_proof/ipa_utils.py
--- old/img-proof-5.2.0/img_proof/ipa_utils.py 2020-06-07 21:09:18.000000000
+0200
+++ new/img-proof-5.3.0/img_proof/ipa_utils.py 2020-08-06 22:46:08.000000000
+0200
@@ -116,11 +116,8 @@
"""
Expand the list of test files and test descriptions.
- The list is split on sync points and duplicates in
- each set are removed.
-
Returns:
- List of test files split into sets by sync points.
+ List of test files and sync points.
Raises:
IpaUtilsException: If names is not a list.
"""
@@ -426,33 +423,25 @@
def parse_sync_points(names, tests):
"""
- Slice list of test names on sync points.
-
If test is test file find full path to file.
+ Otherwise leave sync point names as is.
+
Returns:
- A list of test file sets and sync point strings.
+ A list of test file paths and sync points.
Examples:
['test_hard_reboot']
- [set('test1', 'test2')]
- [set('test1', 'test2'), 'test_soft_reboot']
- [set('test1', 'test2'), 'test_soft_reboot', set('test3')]
+ ['/path/to/test1', '/path/to/test2']
+ ['/path/to/test1', '/path/to/test2', 'test_soft_reboot']
"""
test_files = []
- section = set()
for name in names:
if name in SYNC_POINTS:
- if section:
- test_files.append(section)
-
test_files.append(name)
- section = set()
else:
- section.add(find_test_file(name, tests))
+ test_files.append(find_test_file(name, tests))
- if section:
- test_files.append(section)
return test_files
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/img_proof/scripts/cli.py
new/img-proof-5.3.0/img_proof/scripts/cli.py
--- old/img-proof-5.2.0/img_proof/scripts/cli.py 2020-06-07
21:09:18.000000000 +0200
+++ new/img-proof-5.3.0/img_proof/scripts/cli.py 2020-08-06
22:46:08.000000000 +0200
@@ -178,7 +178,7 @@
@click.option(
'--no-default-test-dirs',
is_flag=True,
- default=False,
+ default=None,
help='Do not include default test directories in search for tests.'
)
@click.option(
@@ -291,6 +291,20 @@
help='Enable boot firmware for the instance. By default secure boot '
'is disabled.'
)
[email protected](
+ '--prefix-name',
+ help='Optional prefix to append to the test instance name or ID '
+ 'depending on the cloud framework. EC2 and OCI use autogenerated '
+ 'IDs thus the prefix is added to the display name.'
+)
[email protected](
+ '--retry-count',
+ help='The number of times a test should be re-run if it fails. '
+ 'The default is 3 times before the test is marked as failed. '
+ 'This is helpful due to the possibility for flaky SSH sessions '
+ 'and/or network connections.',
+ type=click.IntRange(min=0)
+)
@click.argument('tests', nargs=-1)
@click.pass_context
def test(context,
@@ -335,6 +349,8 @@
oci_user_id,
enable_secure_boot,
enable_uefi,
+ prefix_name,
+ retry_count,
tests):
"""Test image in the given framework using the supplied test files."""
no_color = context.obj['no_color']
@@ -384,7 +400,9 @@
oci_user_id,
enable_secure_boot,
enable_uefi,
- logger
+ logger,
+ prefix_name,
+ retry_count
)
echo_results(results, no_color)
sys.exit(status)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/img_proof.egg-info/PKG-INFO
new/img-proof-5.3.0/img_proof.egg-info/PKG-INFO
--- old/img-proof-5.2.0/img_proof.egg-info/PKG-INFO 2020-06-07
21:10:09.000000000 +0200
+++ new/img-proof-5.3.0/img_proof.egg-info/PKG-INFO 2020-08-06
22:47:14.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: img-proof
-Version: 5.2.0
+Version: 5.3.0
Summary: Package for automated testing of cloud images.
Home-page: https://github.com/SUSE-Enceladus/img-proof
Author: SUSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/package/python3-img-proof.spec
new/img-proof-5.3.0/package/python3-img-proof.spec
--- old/img-proof-5.2.0/package/python3-img-proof.spec 2020-06-07
21:09:18.000000000 +0200
+++ new/img-proof-5.3.0/package/python3-img-proof.spec 2020-08-06
22:46:08.000000000 +0200
@@ -18,7 +18,7 @@
%bcond_without test
Name: python3-img-proof
-Version: 5.2.0
+Version: 5.3.0
Release: 0
Summary: Command line and API for testing custom images
License: GPL-3.0-or-later
@@ -59,7 +59,7 @@
Requires: python3-pytest
Requires: python3-testinfra
BuildArch: noarch
-Obsoletes: python3-ipa < 5.2.0
+Obsoletes: python3-ipa < 5.3.0
%description
img-proof provides a command line utility to test images in
@@ -70,7 +70,7 @@
Group: Development/Languages/Python
Requires: python3-susepubliccloudinfo
PreReq: python3-img-proof = %{version}
-Obsoletes: python3-ipa-tests < 5.2.0
+Obsoletes: python3-ipa-tests < 5.3.0
%description tests
Directory of infrastructure tests for testing images.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/setup.cfg
new/img-proof-5.3.0/setup.cfg
--- old/img-proof-5.2.0/setup.cfg 2020-06-07 21:10:09.000000000 +0200
+++ new/img-proof-5.3.0/setup.cfg 2020-08-06 22:47:15.000000000 +0200
@@ -1,5 +1,5 @@
[bumpversion]
-current_version = 5.2.0
+current_version = 5.3.0
commit = True
tag = False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/setup.py new/img-proof-5.3.0/setup.py
--- old/img-proof-5.2.0/setup.py 2020-06-07 21:09:18.000000000 +0200
+++ new/img-proof-5.3.0/setup.py 2020-08-06 22:46:08.000000000 +0200
@@ -43,7 +43,7 @@
setup(
name='img-proof',
- version='5.2.0',
+ version='5.3.0',
description="Package for automated testing of cloud images.",
long_description=readme,
long_description_content_type="text/markdown",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/tests/test_ipa_cloud.py
new/img-proof-5.3.0/tests/test_ipa_cloud.py
--- old/img-proof-5.2.0/tests/test_ipa_cloud.py 2020-06-07 21:09:18.000000000
+0200
+++ new/img-proof-5.3.0/tests/test_ipa_cloud.py 2020-08-06 22:46:08.000000000
+0200
@@ -210,7 +210,7 @@
'region': 'us-west-1'
}
- out = cloud._run_tests(
+ out = cloud._run_test(
['tests/data/tests/test_image.py'],
'test.ssh'
)
@@ -603,10 +603,10 @@
@patch.object(IpaCloud, '_start_instance_if_stopped')
@patch.object(IpaCloud, '_get_ssh_client')
@patch('img_proof.ipa_utils.get_host_key_fingerprint')
- @patch.object(IpaCloud, '_run_tests')
+ @patch.object(IpaCloud, '_run_test')
def test_cloud_break_if_test_failure(
self,
- mock_run_tests,
+ mock_run_test,
mock_get_host_key,
mock_get_ssh_client,
mock_start_instance,
@@ -614,7 +614,7 @@
mock_set_instance_ip
):
"""Test exception raised when invalid test item provided."""
- mock_run_tests.return_value = 1
+ mock_run_test.return_value = 1
mock_get_host_key.return_value = b'04820482'
mock_get_ssh_client.return_value = None
mock_start_instance.return_value = None
@@ -629,7 +629,7 @@
status, results = cloud.test_image()
assert status == 1
- assert mock_run_tests.call_count == 1
+ assert mock_run_test.call_count == 1
@patch.object(IpaCloud, '_get_instance_state')
@patch('time.sleep')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/tests/test_ipa_oci.py
new/img-proof-5.3.0/tests/test_ipa_oci.py
--- old/img-proof-5.2.0/tests/test_ipa_oci.py 2020-06-07 21:09:18.000000000
+0200
+++ new/img-proof-5.3.0/tests/test_ipa_oci.py 2020-08-06 22:46:08.000000000
+0200
@@ -515,6 +515,7 @@
cloud.instance_type = None
cloud.image_id = 'image123'
cloud.logger = logger
+ cloud.prefix_name = None
cloud._launch_instance()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/img-proof-5.2.0/tests/test_ipa_utils.py
new/img-proof-5.3.0/tests/test_ipa_utils.py
--- old/img-proof-5.2.0/tests/test_ipa_utils.py 2020-06-07 21:09:18.000000000
+0200
+++ new/img-proof-5.3.0/tests/test_ipa_utils.py 2020-08-06 22:46:08.000000000
+0200
@@ -141,10 +141,9 @@
test_dirs = ['tests/data/tests']
names = ['test_sles::test_sles', 'test_image_desc']
expanded = ipa_utils.expand_test_files(test_dirs, names)
- assert expanded[0] - set(
- ['tests/data/tests/test_image.py',
- 'tests/data/tests/test_sles.py::test_sles']
- ) == set()
+
+ assert 'tests/data/tests/test_image.py' in expanded
+ assert 'tests/data/tests/test_sles.py::test_sles' in expanded
def test_utils_test_file_not_found():
@@ -176,13 +175,11 @@
names = ['test_soft_reboot', 'test_sles_desc', 'test_hard_reboot']
expanded = ipa_utils.expand_test_files(test_dirs, names)
- assert len(expanded) == 3
+ assert len(expanded) == 4
assert expanded[0] == 'test_soft_reboot'
- assert expanded[1] - set(
- ['tests/data/tests/test_sles.py',
- 'tests/data/tests/test_image.py']
- ) == set()
- assert expanded[2] == 'test_hard_reboot'
+ assert expanded[1] == 'tests/data/tests/test_sles.py'
+ assert expanded[2] == 'tests/data/tests/test_image.py'
+ assert expanded[3] == 'test_hard_reboot'
@patch('img_proof.ipa_utils.execute_ssh_command')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/img-proof-5.2.0/usr/share/lib/img_proof/tests/SLES/Azure/test_sles_azure_services.py
new/img-proof-5.3.0/usr/share/lib/img_proof/tests/SLES/Azure/test_sles_azure_services.py
---
old/img-proof-5.2.0/usr/share/lib/img_proof/tests/SLES/Azure/test_sles_azure_services.py
2020-06-07 21:09:18.000000000 +0200
+++
new/img-proof-5.3.0/usr/share/lib/img_proof/tests/SLES/Azure/test_sles_azure_services.py
2020-08-06 22:46:08.000000000 +0200
@@ -4,5 +4,22 @@
@pytest.mark.parametrize('name', [
('waagent'),
])
-def test_sles_azure_services(check_service, name):
+def test_sles_azure_running_services(check_service, name):
assert check_service(name)
+
+
[email protected]('name', [
+ ('cloud-init-local'),
+ ('cloud-init'),
+ ('cloud-config'),
+ ('cloud-final')
+])
+def test_sles_azure_one_shot_services(check_service, host, name):
+ assert check_service(name, running=None)
+
+ if host.exists('systemctl'):
+ # No clear way to check a service exited successfully using sysvinit
+ output = host.run(
+ "systemctl show -p Result {0} | sed 's/Result=//g'".format(name)
+ )
+ assert output.stdout.strip() == 'success'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/img-proof-5.2.0/usr/share/lib/img_proof/tests/SLES/GCE/test_sles_gce_services.py
new/img-proof-5.3.0/usr/share/lib/img_proof/tests/SLES/GCE/test_sles_gce_services.py
---
old/img-proof-5.2.0/usr/share/lib/img_proof/tests/SLES/GCE/test_sles_gce_services.py
2020-06-07 21:09:18.000000000 +0200
+++
new/img-proof-5.3.0/usr/share/lib/img_proof/tests/SLES/GCE/test_sles_gce_services.py
2020-08-06 22:46:08.000000000 +0200
@@ -2,18 +2,18 @@
@pytest.mark.parametrize('name', [
- 'google-accounts-daemon',
- 'google-clock-skew-daemon',
- 'google-network-daemon'
+ 'google-guest-agent'
])
def test_sles_gce_running_services(check_service, name):
assert check_service(name)
@pytest.mark.parametrize('name', [
- 'google-instance-setup',
'google-startup-scripts',
- 'google-shutdown-scripts'
+ 'google-shutdown-scripts',
+ 'google-optimize-local-ssd',
+ 'google-oslogin-cache',
+ 'google-set-multiqueue'
])
def test_sles_gce_one_shot_services(check_service, host, name):
assert check_service(name, running=None)