Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-main-wrapper for 
openSUSE:Factory checked in at 2022-09-30 17:57:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-main-wrapper (Old)
 and      /work/SRC/openSUSE:Factory/.python-main-wrapper.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-main-wrapper"

Fri Sep 30 17:57:50 2022 rev:2 rq:1007067 version:0.1.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-main-wrapper/python-main-wrapper.changes  
2020-08-18 15:04:17.255872829 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-main-wrapper.new.2275/python-main-wrapper.changes
        2022-09-30 17:58:07.605291233 +0200
@@ -1,0 +2,6 @@
+Thu Sep 29 15:44:36 UTC 2022 - Yogalakshmi Arunachalam <yarunacha...@suse.com>
+
+- Update to version 0.1.1 
+  Merge branch 'integration/cli/ci/github-actions' into develop
+
+-------------------------------------------------------------------

Old:
----
  main-wrapper-0.1.0.tar.gz

New:
----
  main-wrapper-0.1.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-main-wrapper.spec ++++++
--- /var/tmp/diff_new_pack.SAlRXL/_old  2022-09-30 17:58:08.033292147 +0200
+++ /var/tmp/diff_new_pack.SAlRXL/_new  2022-09-30 17:58:08.037292156 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-main-wrapper
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-main-wrapper
-Version:        0.1.0
+Version:        0.1.1
 Release:        0
 Summary:        Preconfigure Python global environment to run scripts within
 License:        MIT
@@ -34,7 +34,7 @@
 Requires:       python-base >= 3.6.6
 Requires:       python-six
 Requires(post): update-alternatives
-Requires(postun): update-alternatives
+Requires(postun):update-alternatives
 BuildArch:      noarch
 # SECTION test requirements
 BuildRequires:  %{python_module six}

++++++ main-wrapper-0.1.0.tar.gz -> main-wrapper-0.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/main-wrapper-0.1.0/.github/workflows/ci-cd.yml 
new/main-wrapper-0.1.1/.github/workflows/ci-cd.yml
--- old/main-wrapper-0.1.0/.github/workflows/ci-cd.yml  2020-04-27 
14:08:00.000000000 +0200
+++ new/main-wrapper-0.1.1/.github/workflows/ci-cd.yml  2021-09-21 
20:48:32.000000000 +0200
@@ -15,7 +15,7 @@
 
       - name: Add user installs to PATH
         run: |
-          echo "::add-path::$HOME/.local/bin"
+          echo "$HOME/.local/bin" >> $GITHUB_PATH
 
       - name: Set up Python ${{ matrix.python-version }}
         uses: actions/setup-python@master
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/main-wrapper-0.1.0/Makefile 
new/main-wrapper-0.1.1/Makefile
--- old/main-wrapper-0.1.0/Makefile     2020-04-27 14:08:00.000000000 +0200
+++ new/main-wrapper-0.1.1/Makefile     2021-09-21 20:48:32.000000000 +0200
@@ -20,6 +20,10 @@
 test: all format
        tox
 
+.PHONY: test-debug
+test-debug: var/log/tox-recreate.log
+       ./.tox/py3/bin/pytest --pdb
+
 .PHONY: upgrade
 upgrade: var/log/tox-recreate.log
        make -j $(words $(VENVS:%=upgrade-%)) $(VENVS:%=upgrade-%)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/main-wrapper-0.1.0/PKG-INFO 
new/main-wrapper-0.1.1/PKG-INFO
--- old/main-wrapper-0.1.0/PKG-INFO     2020-04-27 14:08:45.000000000 +0200
+++ new/main-wrapper-0.1.1/PKG-INFO     2021-09-21 20:49:11.000000000 +0200
@@ -1,97 +1,11 @@
 Metadata-Version: 2.1
 Name: main-wrapper
-Version: 0.1.0
+Version: 0.1.1
 Summary: Set up global environment and run another script within, ala pdb, 
profile, etc..
 Home-page: https://github.com/rpatterson/python-main-wrapper
 Author: Ross Patterson
 Author-email: m...@rpatterson.net
 License: MIT
-Description: 
==============================================================================
-        python-main-wrapper
-        
==============================================================================
-        Set up global environment and run another script within, ala pdb, 
profile, etc
-        
------------------------------------------------------------------------------
-        
-        .. image:: 
https://github.com/rpatterson/python-main-wrapper/workflows/Run%20linter,%20tests%20and,%20and%20release/badge.svg
-        
-        Use ``main-wrapper`` either as a command-line script or as a library 
to make `Python`_
-        scripts that set up or change some global Python environment and then 
run another script
-        within that environment.  It seeks to combine into one library all the 
gloss and polish
-        of other Python software that does this, such as using ``python -m`` 
with ``pdb`` and
-        ``profile`` in the standard library or the ``coverage`` package's 
command-line ``run``
-        command.
-        
-        
-        Installation
-        ============
-        
-        Install using any tool for installing standard Python 3 distributions 
such as `pip`_::
-        
-          $ sudo pip3 install main-wrapper
-        
-        
-        Usage
-        =====
-        
-        You may use this package either as a library in your code that needs 
to wrap another
-        script or as a command-line script.
-        
-        To use as a library, use the provided decorator to wrap your function 
that sets up the
-        global environment you need the script to be run in::
-        
-          import logging
-          import argparse
-        
-          import mainwrapper
-        
-          parser = argparse.ArgumentParser()
-          parser.add_argument(
-              "--level",
-              default="INFO",
-              help="The level of messages to log at or above",
-          )
-        
-          @mainwrapper.wrap_main(parser)
-          def main(level=parser.get_default("level")):
-              """
-              As an example, this function will set up logging at level INFO.
-              """
-              logging.basicConfig(level=getattr(logging, level))
-        
-        The changes to Python's global execution environment that support 
running the wrapper
-        function and the final script are also cleaned up upon completion, so 
it should be
-        possible to use this library to execute multiple scripts in the same 
process as if they
-        were run independently.
-        
-        See the command-line help for details the options and arguments for 
using this package
-        as a command-line script::
-        
-          $ usage: python-main-wrapper [-h] wrapper script
-        
-          Set up global environment and run another script within, ala pdb, 
profile, etc..  Both
-          script arguments may either be a path to a Python script, a Python 
module or package
-          to be run in the same manner as Python's `-m` option, or a setuptools
-          `path.to.import:callable` entry-point.
-        
-          positional arguments:
-            wrapper     A Python script that sets up the environment
-            script      The Python script to run within the wrapper's 
environment
-        
-          optional arguments:
-            -h, --help  show this help message and exit
-        
-        
-        Motivation
-        ==========
-        
-        I found myself writing such wrapper scripts repeatedly over the years 
and kept
-        struggling to remember how I did it last time.  I made this package to 
capture all that
-        knowledge and to have one place to put improvements as I discover them.
-        
-        
-        .. _Python: https://docs.python.org/3/library/logging.html
-        .. _pip: https://pip.pypa.io/en/stable/installing/
-        
 Platform: UNKNOWN
 Classifier: Development Status :: 4 - Beta
 Classifier: Environment :: Console
@@ -105,3 +19,112 @@
 Requires-Python: >=2.7
 Description-Content-Type: text/x-rst
 Provides-Extra: dev
+License-File: LICENSE
+
+==============================================================================
+python-main-wrapper
+==============================================================================
+Set up global environment and run another script within, ala pdb, profile, etc
+------------------------------------------------------------------------------
+
+.. image:: 
https://github.com/rpatterson/python-main-wrapper/workflows/Run%20linter,%20tests%20and,%20and%20release/badge.svg
+
+Use ``main-wrapper`` either as a command-line script or as a library to make 
`Python`_
+scripts that set up or change some global Python environment and then run 
another script
+within that environment.  It seeks to combine into one library all the gloss 
and polish
+of other Python software that does this, such as using ``python -m`` with 
``pdb`` and
+``profile`` in the standard library or the ``coverage`` package's command-line 
``run``
+command.
+
+
+Installation
+============
+
+Install using any tool for installing standard Python 3 distributions such as 
`pip`_::
+
+  $ sudo pip3 install main-wrapper
+
+
+Usage
+=====
+
+You may use this package either as a library in your code that needs to wrap 
another
+script or as a command-line script.
+
+To use as a library, use the provided decorator to wrap your function that 
sets up the
+global environment you need the script to be run in::
+
+  import logging
+  import argparse
+
+  import mainwrapper
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      "--level",
+      default="INFO",
+      help="The level of messages to log at or above",
+  )
+
+  @mainwrapper.wrap_main(parser)
+  def main(level=parser.get_default("level")):
+      """
+      As an example, this function will set up logging at level INFO.
+      """
+      logging.basicConfig(level=getattr(logging, level))
+
+The changes to Python's global execution environment that support running the 
wrapper
+function and the final script are also cleaned up upon completion, so it 
should be
+possible to use this library to execute multiple scripts in the same process 
as if they
+were run independently.
+
+See the command-line help for details the options and arguments for using this 
package
+as a command-line script::
+
+  $ usage: python-main-wrapper [-h] wrapper script
+
+  Set up global environment and run another script within, ala pdb, profile, 
etc..  Both
+  script arguments may either be a path to a Python script, a Python module or 
package
+  to be run in the same manner as Python's `-m` option, or a setuptools
+  `path.to.import:callable` entry-point.
+
+  positional arguments:
+    wrapper     A Python script that sets up the environment
+    script      The Python script to run within the wrapper's environment
+
+  optional arguments:
+    -h, --help  show this help message and exit
+
+Note that this package uses `argparse.ArgumentParser.parse_known_args`_ under 
the hood
+and as such be sure to use it's support for the ``--`` convention to separate 
arguments
+and options to be passed to the wrapped script::
+
+  $ python-main-wrapper site site:_script --help
+  ...
+  site.py [--user-base] [--user-site]
+
+  Without arguments print some useful information
+  With arguments print the value of USER_BASE and/or USER_SITE separated
+  by ':'.
+
+  Exit codes with --user-base or --user-site:
+    0 - user site directory is enabled
+    1 - user site directory is disabled by user
+    2 - user site directory is disabled by super user
+        or for security reasons
+   >2 - unknown error
+
+
+Motivation
+==========
+
+I found myself writing such wrapper scripts repeatedly over the years and kept
+struggling to remember how I did it last time.  I made this package to capture 
all that
+knowledge and to have one place to put improvements as I discover them.
+
+
+.. _Python: https://docs.python.org/3/library/logging.html
+.. _pip: https://pip.pypa.io/en/stable/installing/
+.. _argparse.ArgumentParser.parse_known_args: 
https://docs.python.org/dev/library/argparse.html#argparse.ArgumentParser.parse_known_args
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/main-wrapper-0.1.0/README.rst 
new/main-wrapper-0.1.1/README.rst
--- old/main-wrapper-0.1.0/README.rst   2020-04-27 14:08:00.000000000 +0200
+++ new/main-wrapper-0.1.1/README.rst   2021-09-21 20:48:32.000000000 +0200
@@ -72,6 +72,25 @@
   optional arguments:
     -h, --help  show this help message and exit
 
+Note that this package uses `argparse.ArgumentParser.parse_known_args`_ under 
the hood
+and as such be sure to use it's support for the ``--`` convention to separate 
arguments
+and options to be passed to the wrapped script::
+
+  $ python-main-wrapper site site:_script --help
+  ...
+  site.py [--user-base] [--user-site]
+
+  Without arguments print some useful information
+  With arguments print the value of USER_BASE and/or USER_SITE separated
+  by ':'.
+
+  Exit codes with --user-base or --user-site:
+    0 - user site directory is enabled
+    1 - user site directory is disabled by user
+    2 - user site directory is disabled by super user
+        or for security reasons
+   >2 - unknown error
+
 
 Motivation
 ==========
@@ -83,3 +102,4 @@
 
 .. _Python: https://docs.python.org/3/library/logging.html
 .. _pip: https://pip.pypa.io/en/stable/installing/
+.. _argparse.ArgumentParser.parse_known_args: 
https://docs.python.org/dev/library/argparse.html#argparse.ArgumentParser.parse_known_args
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/main-wrapper-0.1.0/setup.py 
new/main-wrapper-0.1.1/setup.py
--- old/main-wrapper-0.1.0/setup.py     2020-04-27 14:08:00.000000000 +0200
+++ new/main-wrapper-0.1.1/setup.py     2021-09-21 20:48:32.000000000 +0200
@@ -36,10 +36,15 @@
     packages=setuptools.find_packages("src"),
     package_dir={"": "src"},
     use_scm_version=dict(
-        write_to="src/mainwrapper/version.py", local_scheme="no-local-version",
+        write_to="src/mainwrapper/version.py",
+        local_scheme="no-local-version",
     ),
-    setup_requires=["setuptools_scm"],
-    install_requires=['pathlib2;python_version<"3"'],
+    setup_requires=[
+        'setuptools_scm;python_version>="3"',
+        # BBB: Python 2.7 compatibility
+        'setuptools_scm<6;python_version<"3"',
+    ],
+    install_requires=["six", 'pathlib2;python_version<"3"'],
     tests_require=tests_require,
     extras_require=dict(
         dev=tests_require
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/main-wrapper-0.1.0/src/main_wrapper.egg-info/PKG-INFO 
new/main-wrapper-0.1.1/src/main_wrapper.egg-info/PKG-INFO
--- old/main-wrapper-0.1.0/src/main_wrapper.egg-info/PKG-INFO   2020-04-27 
14:08:45.000000000 +0200
+++ new/main-wrapper-0.1.1/src/main_wrapper.egg-info/PKG-INFO   2021-09-21 
20:49:11.000000000 +0200
@@ -1,97 +1,11 @@
 Metadata-Version: 2.1
 Name: main-wrapper
-Version: 0.1.0
+Version: 0.1.1
 Summary: Set up global environment and run another script within, ala pdb, 
profile, etc..
 Home-page: https://github.com/rpatterson/python-main-wrapper
 Author: Ross Patterson
 Author-email: m...@rpatterson.net
 License: MIT
-Description: 
==============================================================================
-        python-main-wrapper
-        
==============================================================================
-        Set up global environment and run another script within, ala pdb, 
profile, etc
-        
------------------------------------------------------------------------------
-        
-        .. image:: 
https://github.com/rpatterson/python-main-wrapper/workflows/Run%20linter,%20tests%20and,%20and%20release/badge.svg
-        
-        Use ``main-wrapper`` either as a command-line script or as a library 
to make `Python`_
-        scripts that set up or change some global Python environment and then 
run another script
-        within that environment.  It seeks to combine into one library all the 
gloss and polish
-        of other Python software that does this, such as using ``python -m`` 
with ``pdb`` and
-        ``profile`` in the standard library or the ``coverage`` package's 
command-line ``run``
-        command.
-        
-        
-        Installation
-        ============
-        
-        Install using any tool for installing standard Python 3 distributions 
such as `pip`_::
-        
-          $ sudo pip3 install main-wrapper
-        
-        
-        Usage
-        =====
-        
-        You may use this package either as a library in your code that needs 
to wrap another
-        script or as a command-line script.
-        
-        To use as a library, use the provided decorator to wrap your function 
that sets up the
-        global environment you need the script to be run in::
-        
-          import logging
-          import argparse
-        
-          import mainwrapper
-        
-          parser = argparse.ArgumentParser()
-          parser.add_argument(
-              "--level",
-              default="INFO",
-              help="The level of messages to log at or above",
-          )
-        
-          @mainwrapper.wrap_main(parser)
-          def main(level=parser.get_default("level")):
-              """
-              As an example, this function will set up logging at level INFO.
-              """
-              logging.basicConfig(level=getattr(logging, level))
-        
-        The changes to Python's global execution environment that support 
running the wrapper
-        function and the final script are also cleaned up upon completion, so 
it should be
-        possible to use this library to execute multiple scripts in the same 
process as if they
-        were run independently.
-        
-        See the command-line help for details the options and arguments for 
using this package
-        as a command-line script::
-        
-          $ usage: python-main-wrapper [-h] wrapper script
-        
-          Set up global environment and run another script within, ala pdb, 
profile, etc..  Both
-          script arguments may either be a path to a Python script, a Python 
module or package
-          to be run in the same manner as Python's `-m` option, or a setuptools
-          `path.to.import:callable` entry-point.
-        
-          positional arguments:
-            wrapper     A Python script that sets up the environment
-            script      The Python script to run within the wrapper's 
environment
-        
-          optional arguments:
-            -h, --help  show this help message and exit
-        
-        
-        Motivation
-        ==========
-        
-        I found myself writing such wrapper scripts repeatedly over the years 
and kept
-        struggling to remember how I did it last time.  I made this package to 
capture all that
-        knowledge and to have one place to put improvements as I discover them.
-        
-        
-        .. _Python: https://docs.python.org/3/library/logging.html
-        .. _pip: https://pip.pypa.io/en/stable/installing/
-        
 Platform: UNKNOWN
 Classifier: Development Status :: 4 - Beta
 Classifier: Environment :: Console
@@ -105,3 +19,112 @@
 Requires-Python: >=2.7
 Description-Content-Type: text/x-rst
 Provides-Extra: dev
+License-File: LICENSE
+
+==============================================================================
+python-main-wrapper
+==============================================================================
+Set up global environment and run another script within, ala pdb, profile, etc
+------------------------------------------------------------------------------
+
+.. image:: 
https://github.com/rpatterson/python-main-wrapper/workflows/Run%20linter,%20tests%20and,%20and%20release/badge.svg
+
+Use ``main-wrapper`` either as a command-line script or as a library to make 
`Python`_
+scripts that set up or change some global Python environment and then run 
another script
+within that environment.  It seeks to combine into one library all the gloss 
and polish
+of other Python software that does this, such as using ``python -m`` with 
``pdb`` and
+``profile`` in the standard library or the ``coverage`` package's command-line 
``run``
+command.
+
+
+Installation
+============
+
+Install using any tool for installing standard Python 3 distributions such as 
`pip`_::
+
+  $ sudo pip3 install main-wrapper
+
+
+Usage
+=====
+
+You may use this package either as a library in your code that needs to wrap 
another
+script or as a command-line script.
+
+To use as a library, use the provided decorator to wrap your function that 
sets up the
+global environment you need the script to be run in::
+
+  import logging
+  import argparse
+
+  import mainwrapper
+
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      "--level",
+      default="INFO",
+      help="The level of messages to log at or above",
+  )
+
+  @mainwrapper.wrap_main(parser)
+  def main(level=parser.get_default("level")):
+      """
+      As an example, this function will set up logging at level INFO.
+      """
+      logging.basicConfig(level=getattr(logging, level))
+
+The changes to Python's global execution environment that support running the 
wrapper
+function and the final script are also cleaned up upon completion, so it 
should be
+possible to use this library to execute multiple scripts in the same process 
as if they
+were run independently.
+
+See the command-line help for details the options and arguments for using this 
package
+as a command-line script::
+
+  $ usage: python-main-wrapper [-h] wrapper script
+
+  Set up global environment and run another script within, ala pdb, profile, 
etc..  Both
+  script arguments may either be a path to a Python script, a Python module or 
package
+  to be run in the same manner as Python's `-m` option, or a setuptools
+  `path.to.import:callable` entry-point.
+
+  positional arguments:
+    wrapper     A Python script that sets up the environment
+    script      The Python script to run within the wrapper's environment
+
+  optional arguments:
+    -h, --help  show this help message and exit
+
+Note that this package uses `argparse.ArgumentParser.parse_known_args`_ under 
the hood
+and as such be sure to use it's support for the ``--`` convention to separate 
arguments
+and options to be passed to the wrapped script::
+
+  $ python-main-wrapper site site:_script --help
+  ...
+  site.py [--user-base] [--user-site]
+
+  Without arguments print some useful information
+  With arguments print the value of USER_BASE and/or USER_SITE separated
+  by ':'.
+
+  Exit codes with --user-base or --user-site:
+    0 - user site directory is enabled
+    1 - user site directory is disabled by user
+    2 - user site directory is disabled by super user
+        or for security reasons
+   >2 - unknown error
+
+
+Motivation
+==========
+
+I found myself writing such wrapper scripts repeatedly over the years and kept
+struggling to remember how I did it last time.  I made this package to capture 
all that
+knowledge and to have one place to put improvements as I discover them.
+
+
+.. _Python: https://docs.python.org/3/library/logging.html
+.. _pip: https://pip.pypa.io/en/stable/installing/
+.. _argparse.ArgumentParser.parse_known_args: 
https://docs.python.org/dev/library/argparse.html#argparse.ArgumentParser.parse_known_args
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/main-wrapper-0.1.0/src/main_wrapper.egg-info/requires.txt 
new/main-wrapper-0.1.1/src/main_wrapper.egg-info/requires.txt
--- old/main-wrapper-0.1.0/src/main_wrapper.egg-info/requires.txt       
2020-04-27 14:08:45.000000000 +0200
+++ new/main-wrapper-0.1.1/src/main_wrapper.egg-info/requires.txt       
2021-09-21 20:49:11.000000000 +0200
@@ -1,3 +1,4 @@
+six
 
 [:python_version < "3"]
 pathlib2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/main-wrapper-0.1.0/src/mainwrapper/__init__.py 
new/main-wrapper-0.1.1/src/mainwrapper/__init__.py
--- old/main-wrapper-0.1.0/src/mainwrapper/__init__.py  2020-04-27 
14:08:00.000000000 +0200
+++ new/main-wrapper-0.1.1/src/mainwrapper/__init__.py  2021-09-21 
20:48:32.000000000 +0200
@@ -88,17 +88,22 @@
 # Define command line options and arguments
 
 script_parser = argparse.ArgumentParser(
-    description=__doc__.strip(), 
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+    description=__doc__.strip(),
+    formatter_class=argparse.ArgumentDefaultsHelpFormatter,
 )
 script_arg_kwargs = dict(
-    type=main_type, help="The Python script to run within the wrapper's 
environment",
+    type=main_type,
+    help="The Python script to run within the wrapper's environment",
 )
 script_parser.add_argument("script", **script_arg_kwargs)
 cli_parser = argparse.ArgumentParser(
-    description=__doc__.strip(), 
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+    description=__doc__.strip(),
+    formatter_class=argparse.ArgumentDefaultsHelpFormatter,
 )
 cli_parser.add_argument(
-    "wrapper", type=main_type, help="A Python script that sets up the 
environment",
+    "wrapper",
+    type=main_type,
+    help="A Python script that sets up the environment",
 )
 cli_parser.add_argument("script", **script_arg_kwargs)
 
@@ -141,10 +146,10 @@
         sys.argv[0] = code_path.name
         sys.argv[1:] = args
 
-        if isinstance(code, types.FunctionType):
+        if isinstance(code, types.FunctionType):  # pragma: no cover
             return code()
         else:
-            return six.exec_(code, globals_, globals_)
+            return six.exec_(code, globals_, globals_)  # pragma: no cover
 
     finally:
         sys.argv[:] = orig_argv
@@ -187,7 +192,12 @@
     args, remaining = cli_parser.parse_known_args(args)
 
     wrapper_module_spec, wrapper_code = args.wrapper
-    exec_main(wrapper_module_spec, wrapper_code)
+    try:
+        exec_main(wrapper_module_spec, wrapper_code)
+    except SystemExit:
+        # Tolerate the wrapper script using the common `sys.exit(main())` 
pattern.
+        # Note that wrapper scripts should *not* do this.
+        pass
 
     module_spec, code = args.script  # pragma: no cover
     return exec_main(module_spec, code, *remaining)  # pragma: no cover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/main-wrapper-0.1.0/src/mainwrapper/tests/test_mainwrapper.py 
new/main-wrapper-0.1.1/src/mainwrapper/tests/test_mainwrapper.py
--- old/main-wrapper-0.1.0/src/mainwrapper/tests/test_mainwrapper.py    
2020-04-27 14:08:00.000000000 +0200
+++ new/main-wrapper-0.1.1/src/mainwrapper/tests/test_mainwrapper.py    
2021-09-21 20:48:32.000000000 +0200
@@ -43,7 +43,18 @@
         self.assertIn(
             mainwrapper.__doc__.strip().split("\n")[0][:55],
             stdout,
-            "The console script name missing from --help output",
+            "The console script docstring missing from --help output",
+        )
+
+        wrapped_out_file = six.StringIO()
+        with self.assertRaises(SystemExit):
+            with contextlib.redirect_stdout(wrapped_out_file):
+                mainwrapper.main(args=["site", "site:_script", "--", "--help"])
+        wrapped_out = wrapped_out_file.getvalue()
+        self.assertNotIn(
+            mainwrapper.__doc__.strip().split("\n")[0][:55],
+            wrapped_out,
+            "The console script docstring included in wrapped --help output",
         )
 
     def test_cli_options(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/main-wrapper-0.1.0/src/mainwrapper/version.py 
new/main-wrapper-0.1.1/src/mainwrapper/version.py
--- old/main-wrapper-0.1.0/src/mainwrapper/version.py   2020-04-27 
14:08:45.000000000 +0200
+++ new/main-wrapper-0.1.1/src/mainwrapper/version.py   2021-09-21 
20:49:11.000000000 +0200
@@ -1,4 +1,5 @@
 # coding: utf-8
 # file generated by setuptools_scm
 # don't change, don't track in version control
-version = '0.1.0'
+version = '0.1.1'
+version_tuple = (0, 1, 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/main-wrapper-0.1.0/tox.ini 
new/main-wrapper-0.1.1/tox.ini
--- old/main-wrapper-0.1.0/tox.ini      2020-04-27 14:08:00.000000000 +0200
+++ new/main-wrapper-0.1.1/tox.ini      2021-09-21 20:48:32.000000000 +0200
@@ -2,6 +2,7 @@
 envlist = lint, py3, py2
 
 [testenv]
+usedevelop = true
 extras = dev
 commands =
     coverage run -m pytest -s

Reply via email to