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)


Reply via email to