Hello community,

here is the log from the commit of package python-pytest-console-scripts for 
openSUSE:Factory checked in at 2019-09-16 10:51:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest-console-scripts (Old)
 and      /work/SRC/openSUSE:Factory/.python-pytest-console-scripts.new.7948 
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pytest-console-scripts"

Mon Sep 16 10:51:06 2019 rev:2 rq:730736 version:0.1.10

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-pytest-console-scripts/python-pytest-console-scripts.changes
      2019-08-22 15:22:28.990272211 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-pytest-console-scripts.new.7948/python-pytest-console-scripts.changes
    2019-09-16 10:51:10.819166188 +0200
@@ -1,0 +2,6 @@
+Fri Sep 13 13:22:48 UTC 2019 - Tomáš Chvátal <tchva...@suse.com>
+
+- Update to 0.1.10:
+  * Print out return code, stdout and stderr output
+
+-------------------------------------------------------------------

Old:
----
  pytest-console-scripts-0.1.9.tar.gz

New:
----
  pytest-console-scripts-0.1.10.tar.gz

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

Other differences:
------------------
++++++ python-pytest-console-scripts.spec ++++++
--- /var/tmp/diff_new_pack.H5qpok/_old  2019-09-16 10:51:11.351166119 +0200
+++ /var/tmp/diff_new_pack.H5qpok/_new  2019-09-16 10:51:11.355166118 +0200
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-pytest-console-scripts
-Version:        0.1.9
+Version:        0.1.10
 Release:        0
 Summary:        Pytest plugin for testing console scripts
 License:        MIT

++++++ pytest-console-scripts-0.1.9.tar.gz -> 
pytest-console-scripts-0.1.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-console-scripts-0.1.9/PKG-INFO 
new/pytest-console-scripts-0.1.10/PKG-INFO
--- old/pytest-console-scripts-0.1.9/PKG-INFO   2019-03-05 20:41:03.000000000 
+0100
+++ new/pytest-console-scripts-0.1.10/PKG-INFO  2019-09-10 15:30:26.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: pytest-console-scripts
-Version: 0.1.9
+Version: 0.1.10
 Summary: Pytest plugin for testing console scripts
 Home-page: https://github.com/kvas-it/pytest-console-scripts
 Author: Vasily Kuznetsov
@@ -28,7 +28,7 @@
         ------------
         
         * Python 2.7 or 3.4+, or PyPy,
-        * Pytest 3.0 or newer.
+        * Pytest 4.0 or newer.
         
         
         Installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-console-scripts-0.1.9/README.rst 
new/pytest-console-scripts-0.1.10/README.rst
--- old/pytest-console-scripts-0.1.9/README.rst 2019-03-05 20:37:51.000000000 
+0100
+++ new/pytest-console-scripts-0.1.10/README.rst        2019-09-10 
15:22:01.000000000 +0200
@@ -18,7 +18,7 @@
 ------------
 
 * Python 2.7 or 3.4+, or PyPy,
-* Pytest 3.0 or newer.
+* Pytest 4.0 or newer.
 
 
 Installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pytest-console-scripts-0.1.9/pytest_console_scripts.egg-info/PKG-INFO 
new/pytest-console-scripts-0.1.10/pytest_console_scripts.egg-info/PKG-INFO
--- old/pytest-console-scripts-0.1.9/pytest_console_scripts.egg-info/PKG-INFO   
2019-03-05 20:41:03.000000000 +0100
+++ new/pytest-console-scripts-0.1.10/pytest_console_scripts.egg-info/PKG-INFO  
2019-09-10 15:30:26.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: pytest-console-scripts
-Version: 0.1.9
+Version: 0.1.10
 Summary: Pytest plugin for testing console scripts
 Home-page: https://github.com/kvas-it/pytest-console-scripts
 Author: Vasily Kuznetsov
@@ -28,7 +28,7 @@
         ------------
         
         * Python 2.7 or 3.4+, or PyPy,
-        * Pytest 3.0 or newer.
+        * Pytest 4.0 or newer.
         
         
         Installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pytest-console-scripts-0.1.9/pytest_console_scripts.egg-info/requires.txt 
new/pytest-console-scripts-0.1.10/pytest_console_scripts.egg-info/requires.txt
--- 
old/pytest-console-scripts-0.1.9/pytest_console_scripts.egg-info/requires.txt   
    2019-03-05 20:41:03.000000000 +0100
+++ 
new/pytest-console-scripts-0.1.10/pytest_console_scripts.egg-info/requires.txt  
    2019-09-10 15:30:26.000000000 +0200
@@ -1,3 +1,3 @@
 mock>=2.0.0
 pytest-runner
-pytest>=3.0.0
+pytest>=4.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pytest-console-scripts-0.1.9/pytest_console_scripts.py 
new/pytest-console-scripts-0.1.10/pytest_console_scripts.py
--- old/pytest-console-scripts-0.1.9/pytest_console_scripts.py  2019-03-05 
20:37:51.000000000 +0100
+++ new/pytest-console-scripts-0.1.10/pytest_console_scripts.py 2019-09-10 
15:17:36.000000000 +0200
@@ -1,4 +1,4 @@
-from __future__ import unicode_literals
+from __future__ import unicode_literals, print_function
 
 import distutils.spawn
 import io
@@ -86,6 +86,9 @@
         self.returncode = returncode
         self.stdout = stdout
         self.stderr = stderr
+        print('# Script return code:', returncode)
+        print('# Script stdout:', stdout, sep='\n')
+        print('# Script stderr:', stderr, sep='\n')
 
 
 class ScriptRunner(object):
@@ -100,6 +103,7 @@
         return '<ScriptRunner {}>'.format(self.launch_mode)
 
     def run(self, command, *arguments, **options):
+        print('# Running console script:', command, *arguments)
         if self.launch_mode == 'inprocess':
             return self.run_inprocess(command, *arguments, **options)
         return self.run_subprocess(command, *arguments, **options)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-console-scripts-0.1.9/setup.py 
new/pytest-console-scripts-0.1.10/setup.py
--- old/pytest-console-scripts-0.1.9/setup.py   2019-03-05 20:38:31.000000000 
+0100
+++ new/pytest-console-scripts-0.1.10/setup.py  2019-09-10 15:22:01.000000000 
+0200
@@ -10,7 +10,7 @@
 
 setup(
     name='pytest-console-scripts',
-    version='0.1.9',
+    version='0.1.10',
     author='Vasily Kuznetsov',
     author_email='kvas...@gmail.com',
     maintainer='Vasily Kuznetsov',
@@ -20,7 +20,7 @@
     description='Pytest plugin for testing console scripts',
     long_description=read('README.rst'),
     py_modules=['pytest_console_scripts'],
-    install_requires=['pytest>=3.0.0', 'mock>=2.0.0', 'pytest-runner'],
+    install_requires=['pytest>=4.0.0', 'mock>=2.0.0', 'pytest-runner'],
     classifiers=[
         'Development Status :: 4 - Beta',
         'Framework :: Pytest',
@@ -46,5 +46,5 @@
         ],
     },
     test_suite='tests',
-    tests_require=['pytest'],
+    tests_require=['pytest', 'virtualenv', 'mock'],
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pytest-console-scripts-0.1.9/tests/test_run_scripts.py 
new/pytest-console-scripts-0.1.10/tests/test_run_scripts.py
--- old/pytest-console-scripts-0.1.9/tests/test_run_scripts.py  2019-03-05 
20:37:51.000000000 +0100
+++ new/pytest-console-scripts-0.1.10/tests/test_run_scripts.py 2019-09-10 
15:17:36.000000000 +0200
@@ -29,18 +29,45 @@
 
     def __init__(self, path):
         self.path = path
+        dpp = self._distpackages_path()
+        if dpp is not None:
+            self.path.mkdir(dpp)
+
+    def _distpackages_path(self):
+        """Return (relative) path used for installing distribution packages.
+
+        On Debian-based systems packages are installed into .../dist-packages
+        instead of .../site-packages. This function returns the relative path
+        of this directory inside of a virtualenv so that we can create it and
+        avoid setup.py failure.
+
+        Will return `None` on systems that don't do this or when running inside
+        of a virtualenv.
+        """
+        for path in sys.path:
+            if path.endswith('dist-packages'):
+                parts = path.split(os.path.sep)
+                if 'lib' in parts:
+                    parts = parts[parts.index('lib'):]
+                    return os.path.join(*parts)
 
     def _update_env(self, env):
         bin_dir = self.path.join('bin').strpath
         env['PATH'] = bin_dir + ':' + env.get('PATH', '')
         env['VIRTUAL_ENV'] = self.path.strpath
+        # Make installed packages of the Python installation that runs this
+        # test accessible. This allows us to run tests in the virtualenv
+        # without installing all the dependencies there.
         env['PYTHONPATH'] = ':'.join(sys.path)
 
     def run(self, cmd, *args, **kw):
-        """Run a command in the virtualenv."""
-        self._update_env(kw.setdefault('env', os.environ))
-        print(kw['env']['PATH'], kw['env']['PYTHONPATH'])
-        subprocess.check_call(cmd, *args, **kw)
+        """Run a command in the virtualenv, return terminated process."""
+        self._update_env(kw.setdefault('env', dict(os.environ)))
+        kw.setdefault('stdout', subprocess.PIPE)
+        kw.setdefault('stderr', subprocess.PIPE)
+        proc = subprocess.Popen(cmd, *args, **kw)
+        proc.wait()
+        return proc
 
     def install_console_script(self, cmd, script_path):
         """Run setup.py to install console script into this virtualenv."""
@@ -111,7 +138,7 @@
             '--script-launch-mode=' + launch_mode,
             test.strpath,
         ]
-        pcs_venv.run(test_cmd, **kw)
+        return pcs_venv.run(test_cmd, **kw)
 
     return run
 
@@ -254,3 +281,37 @@
     assert 'bar\n' == ret.stdout
         """
     )
+
+
+@pytest.mark.parametrize('fail', [True, False])
+def test_print_stdio_on_error(test_script_in_venv, fail):
+    """Check that the content of stdout and stderr is printed on error."""
+    proc = test_script_in_venv(
+        """
+from __future__ import print_function
+
+def main():
+    print('12345')
+    raise Exception('54321')
+        """,
+        """
+def test_fail(script_runner):
+    ret = script_runner.run('console-script', 'foo')
+    assert ret.success is {}
+        """.format(fail),
+    )
+    stdout = proc.stdout.read()
+    if type(stdout) != type(''):  # In Python 3 we convert stdout to unicode.
+        stdout = stdout.decode('utf-8')
+    if fail:
+        assert proc.returncode != 0
+        assert '# Running console script: console-script foo\n' in stdout
+        assert '# Script return code: 1\n' in stdout
+        assert '# Script stdout:\n12345\n' in stdout
+        assert '# Script stderr:\nTraceback' in stdout
+        assert 'Exception: 54321' in stdout
+    else:
+        assert proc.returncode == 0
+        assert 'console-script foo' not in stdout
+        assert '12345' not in stdout
+        assert '54321' not in stdout


Reply via email to