Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-process-tests for 
openSUSE:Factory checked in at 2023-01-07 17:15:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-process-tests (Old)
 and      /work/SRC/openSUSE:Factory/.python-process-tests.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-process-tests"

Sat Jan  7 17:15:58 2023 rev:7 rq:1056272 version:2.1.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-process-tests/python-process-tests.changes    
    2019-11-04 17:10:58.644554128 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-process-tests.new.1563/python-process-tests.changes
      2023-01-07 17:16:14.068910330 +0100
@@ -1,0 +2,13 @@
+Thu Jan  5 20:35:26 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 2.1.2:
+  * Fixed another regression caused by the ``universal_newlines`` for
+    Windows.
+  * Fixed regression caused by the ``universal_newlines`` (now the internals
+    don't decode strings).
+  * Applied the cookiecutter-pylibrary templates.
+  * ``TestProcess`` will use ``universal_newlines`` by default for the
+    contained ``subprocess.Popen`` to make sure line buffering is actually
+  used. This also fixes warnings on Python 3.
+
+-------------------------------------------------------------------

Old:
----
  process-tests-2.0.2.tar.gz

New:
----
  process-tests-2.1.2.tar.gz

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

Other differences:
------------------
++++++ python-process-tests.spec ++++++
--- /var/tmp/diff_new_pack.Lkrf4m/_old  2023-01-07 17:16:14.652913814 +0100
+++ /var/tmp/diff_new_pack.Lkrf4m/_new  2023-01-07 17:16:14.656913838 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-process-tests
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2023 SUSE LLC
 # Copyright (c) 2015 LISA GmbH, Bingen, Germany.
 #
 # All modifications and additions to the file contributed by third parties
@@ -19,7 +19,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-process-tests
-Version:        2.0.2
+Version:        2.1.2
 Release:        0
 Summary:        Tools for testing processes
 License:        BSD-2-Clause

++++++ process-tests-2.0.2.tar.gz -> process-tests-2.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/.bumpversion.cfg 
new/process-tests-2.1.2/.bumpversion.cfg
--- old/process-tests-2.0.2/.bumpversion.cfg    1970-01-01 01:00:00.000000000 
+0100
+++ new/process-tests-2.1.2/.bumpversion.cfg    2021-05-02 09:25:04.000000000 
+0200
@@ -0,0 +1,17 @@
+[bumpversion]
+current_version = 2.1.2
+commit = True
+tag = True
+
+[bumpversion:file:setup.py]
+search = version='{current_version}'
+replace = version='{new_version}'
+
+[bumpversion:file:README.rst]
+search = v{current_version}.
+replace = v{new_version}.
+
+[bumpversion:file:src/process_tests.py]
+search = __version__ = '{current_version}'
+replace = __version__ = '{new_version}'
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/.cookiecutterrc 
new/process-tests-2.1.2/.cookiecutterrc
--- old/process-tests-2.0.2/.cookiecutterrc     1970-01-01 01:00:00.000000000 
+0100
+++ new/process-tests-2.1.2/.cookiecutterrc     2020-07-23 17:01:59.000000000 
+0200
@@ -0,0 +1,70 @@
+# This file exists so you can easily regenerate your project.
+#
+# `cookiepatcher` is a convenient shim around `cookiecutter`
+# for regenerating projects (it will generate a .cookiecutterrc
+# automatically for any template). To use it:
+#
+#    pip install cookiepatcher
+#    cookiepatcher gh:ionelmc/cookiecutter-pylibrary project-path
+#
+# See:
+#    https://pypi.org/project/cookiepatcher
+#
+# Alternatively, you can run:
+#
+#    cookiecutter --overwrite-if-exists 
--config-file=project-path/.cookiecutterrc gh:ionelmc/cookiecutter-pylibrary
+
+default_context:
+
+    _extensions:               ['jinja2_time.TimeExtension']
+    _template:                 'cookiecutter-pylibrary'
+    allow_tests_inside_package: 'no'
+    appveyor:                  'no'
+    c_extension_function:      '-'
+    c_extension_module:        '-'
+    c_extension_optional:      'no'
+    c_extension_support:       'no'
+    c_extension_test_pypi:     'no'
+    c_extension_test_pypi_username: '-'
+    codacy:                    'no'
+    codacy_projectid:          '[Get ID from 
https://app.codacy.com/app/ionelmc/python-process-tests/settings]'
+    codeclimate:               'no'
+    codecov:                   'no'
+    command_line_interface:    'no'
+    command_line_interface_bin_name: '-'
+    coveralls:                 'no'
+    coveralls_token:           '[Required for Appveyor, take it from 
https://coveralls.io/github/ionelmc/python-process-tests]'
+    distribution_name:         'process-tests'
+    email:                     'cont...@ionelmc.ro'
+    full_name:                 'Ionel Cristian Mărieș'
+    landscape:                 'no'
+    license:                   'BSD 2-Clause License'
+    linter:                    'flake8'
+    package_name:              'process_tests'
+    pre_commit:                'yes'
+    project_name:              'Process Tests'
+    project_short_description: 'Tools for testing processes.'
+    pypi_badge:                'yes'
+    pypi_disable_upload:       'no'
+    release_date:              '2019-02-12'
+    repo_hosting:              'github.com'
+    repo_hosting_domain:       'github.com'
+    repo_name:                 'python-process-tests'
+    repo_username:             'ionelmc'
+    requiresio:                'yes'
+    scrutinizer:               'no'
+    setup_py_uses_setuptools_scm: 'no'
+    setup_py_uses_test_runner: 'no'
+    sphinx_docs:               'no'
+    sphinx_docs_hosting:       'https://python-process-tests.readthedocs.io/'
+    sphinx_doctest:            'no'
+    sphinx_theme:              'sphinx-py3doc-enhanced-theme'
+    test_matrix_configurator:  'no'
+    test_matrix_separate_coverage: 'no'
+    test_runner:               'pytest'
+    travis:                    'no'
+    travis_osx:                'no'
+    version:                   '2.0.2'
+    website:                   'https://blog.ionelmc.ro'
+    year_from:                 '2013'
+    year_to:                   '2020'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/.coveragerc 
new/process-tests-2.1.2/.coveragerc
--- old/process-tests-2.0.2/.coveragerc 1970-01-01 01:00:00.000000000 +0100
+++ new/process-tests-2.1.2/.coveragerc 2020-07-23 17:01:59.000000000 +0200
@@ -0,0 +1,16 @@
+[paths]
+source =
+   src
+   */site-packages
+
+[run]
+branch = true
+source =
+    process_tests
+    tests
+parallel = true
+
+[report]
+show_missing = true
+precision = 2
+omit = *migrations*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/.editorconfig 
new/process-tests-2.1.2/.editorconfig
--- old/process-tests-2.0.2/.editorconfig       1970-01-01 01:00:00.000000000 
+0100
+++ new/process-tests-2.1.2/.editorconfig       2020-07-23 17:01:58.000000000 
+0200
@@ -0,0 +1,16 @@
+# see https://editorconfig.org/
+root = true
+
+[*]
+end_of_line = lf
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
+charset = utf-8
+
+[*.{bat,cmd,ps1}]
+end_of_line = crlf
+
+[*.{yml,yaml}]
+indent_size = 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/.gitignore 
new/process-tests-2.1.2/.gitignore
--- old/process-tests-2.0.2/.gitignore  1970-01-01 01:00:00.000000000 +0100
+++ new/process-tests-2.1.2/.gitignore  2020-07-23 17:01:59.000000000 +0200
@@ -0,0 +1,71 @@
+*.py[cod]
+__pycache__
+
+# C extensions
+*.so
+
+# Packages
+*.egg
+*.egg-info
+dist
+build
+eggs
+.eggs
+parts
+bin
+var
+sdist
+wheelhouse
+develop-eggs
+.installed.cfg
+lib
+lib64
+venv*/
+pyvenv*/
+pip-wheel-metadata/
+
+# Installer logs
+pip-log.txt
+
+# Unit test / coverage reports
+.coverage
+.tox
+.coverage.*
+.pytest_cache/
+nosetests.xml
+coverage.xml
+htmlcov
+
+# Translations
+*.mo
+
+# Mr Developer
+.mr.developer.cfg
+.project
+.pydevproject
+.idea
+*.iml
+*.komodoproject
+
+# Complexity
+output/*.html
+output/*/index.html
+
+# Sphinx
+docs/_build
+
+.DS_Store
+*~
+.*.sw[po]
+.build
+.ve
+.env
+.cache
+.pytest
+.benchmarks
+.bootstrap
+.appveyor.token
+*.bak
+
+# Mypy Cache
+.mypy_cache/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/.pre-commit-config.yaml 
new/process-tests-2.1.2/.pre-commit-config.yaml
--- old/process-tests-2.0.2/.pre-commit-config.yaml     1970-01-01 
01:00:00.000000000 +0100
+++ new/process-tests-2.1.2/.pre-commit-config.yaml     2020-07-23 
17:01:58.000000000 +0200
@@ -0,0 +1,20 @@
+# To install the git pre-commit hook run:
+#   pre-commit install
+# To update the pre-commit hooks run:
+#   pre-commit install-hooks
+exclude: '^(.tox|ci/templates|.bumpversion.cfg)(/|$)'
+repos:
+  - repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: master
+    hooks:
+      - id: trailing-whitespace
+      - id: end-of-file-fixer
+      - id: debug-statements
+  - repo: https://github.com/timothycrosley/isort
+    rev: master
+    hooks:
+      - id: isort
+  - repo: https://gitlab.com/pycqa/flake8
+    rev: master
+    hooks:
+      - id: flake8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/AUTHORS.rst 
new/process-tests-2.1.2/AUTHORS.rst
--- old/process-tests-2.0.2/AUTHORS.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/process-tests-2.1.2/AUTHORS.rst 2020-07-23 17:01:59.000000000 +0200
@@ -0,0 +1,5 @@
+
+Authors
+=======
+
+* Ionel Cristian Mărieș - https://blog.ionelmc.ro
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/CHANGELOG.rst 
new/process-tests-2.1.2/CHANGELOG.rst
--- old/process-tests-2.0.2/CHANGELOG.rst       1970-01-01 01:00:00.000000000 
+0100
+++ new/process-tests-2.1.2/CHANGELOG.rst       2021-05-02 09:24:40.000000000 
+0200
@@ -0,0 +1,25 @@
+
+Changelog
+=========
+
+2.1.2 (2020-07-23)
+------------------
+
+* Fixed another regression caused by the ``universal_newlines`` for Windows.
+
+2.1.1 (2020-07-23)
+------------------
+
+* Fixed regression caused by the ``universal_newlines`` (now the internals 
don't decode strings).
+
+2.1.0 (2020-07-23)
+------------------
+
+* Applied the cookiecutter-pylibrary templates.
+* ``TestProcess`` will use ``universal_newlines`` by default for the contained 
``subprocess.Popen`` to make sure line buffering is actually
+  used. This also fixes warnings on Python 3.
+
+2.x (???)
+---------
+
+* Lots of wild stuff.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/CONTRIBUTING.rst 
new/process-tests-2.1.2/CONTRIBUTING.rst
--- old/process-tests-2.0.2/CONTRIBUTING.rst    1970-01-01 01:00:00.000000000 
+0100
+++ new/process-tests-2.1.2/CONTRIBUTING.rst    2020-07-23 17:01:59.000000000 
+0200
@@ -0,0 +1,87 @@
+============
+Contributing
+============
+
+Contributions are welcome, and they are greatly appreciated! Every
+little bit helps, and credit will always be given.
+
+Bug reports
+===========
+
+When `reporting a bug 
<https://github.com/ionelmc/python-process-tests/issues>`_ please include:
+
+    * Your operating system name and version.
+    * Any details about your local setup that might be helpful in 
troubleshooting.
+    * Detailed steps to reproduce the bug.
+
+Documentation improvements
+==========================
+
+Process Tests could always use more documentation, whether as part of the
+official Process Tests docs, in docstrings, or even on the web in blog posts,
+articles, and such.
+
+Feature requests and feedback
+=============================
+
+The best way to send feedback is to file an issue at 
https://github.com/ionelmc/python-process-tests/issues.
+
+If you are proposing a feature:
+
+* Explain in detail how it would work.
+* Keep the scope as narrow as possible, to make it easier to implement.
+* Remember that this is a volunteer-driven project, and that code 
contributions are welcome :)
+
+Development
+===========
+
+To set up `python-process-tests` for local development:
+
+1. Fork `python-process-tests 
<https://github.com/ionelmc/python-process-tests>`_
+   (look for the "Fork" button).
+2. Clone your fork locally::
+
+    git clone g...@github.com:YOURGITHUBNAME/python-process-tests.git
+
+3. Create a branch for local development::
+
+    git checkout -b name-of-your-bugfix-or-feature
+
+   Now you can make your changes locally.
+
+4. When you're done making changes run all the checks and docs builder with 
`tox <https://tox.readthedocs.io/en/latest/install.html>`_ one command::
+
+    tox
+
+5. Commit your changes and push your branch to GitHub::
+
+    git add .
+    git commit -m "Your detailed description of your changes."
+    git push origin name-of-your-bugfix-or-feature
+
+6. Submit a pull request through the GitHub website.
+
+Pull Request Guidelines
+-----------------------
+
+If you need some code review or feedback while you're developing the code just 
make the pull request.
+
+For merging, you should:
+
+1. Include passing tests (run ``tox``).
+2. Update documentation when there's new API, functionality etc.
+3. Add a note to ``CHANGELOG.rst`` about the changes.
+4. Add yourself to ``AUTHORS.rst``.
+
+
+
+Tips
+----
+
+To run a subset of tests::
+
+    tox -e envname -- pytest -k test_myfeature
+
+To run all the test environments in *parallel* (you need to ``pip install 
detox``)::
+
+    detox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/LICENSE 
new/process-tests-2.1.2/LICENSE
--- old/process-tests-2.0.2/LICENSE     2019-01-15 22:18:12.000000000 +0100
+++ new/process-tests-2.1.2/LICENSE     2020-07-23 17:08:48.000000000 +0200
@@ -1,5 +1,6 @@
-Copyright (c) 2013-2014, Ionel Cristian Mărieș
-All rights reserved.
+BSD 2-Clause License
+
+Copyright (c) 2013-2020, Ionel Cristian Mărieș. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the
 following conditions are met:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/MANIFEST.in 
new/process-tests-2.1.2/MANIFEST.in
--- old/process-tests-2.0.2/MANIFEST.in 2019-01-15 22:18:12.000000000 +0100
+++ new/process-tests-2.1.2/MANIFEST.in 2020-07-23 17:01:59.000000000 +0200
@@ -1,14 +1,19 @@
-include README.rst
-include LICENSE
-include AUTHORS
-include tox.ini
-include .coveragerc
-include .travis.yml
-include .pylintrc
-include coverage.ini
-include *.komodoproject
-graft tests
-graft examples
-graft src
 graft docs
-global-exclude *.pyc *.pyo
+graft src
+graft ci
+graft tests
+
+include .bumpversion.cfg
+include .coveragerc
+include .cookiecutterrc
+include .editorconfig
+
+include AUTHORS.rst
+include CHANGELOG.rst
+include CONTRIBUTING.rst
+include LICENSE
+include README.rst
+
+include tox.ini .travis.yml .appveyor.yml .pre-commit-config.yaml
+
+global-exclude *.py[cod] __pycache__/* *.so *.dylib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/PKG-INFO 
new/process-tests-2.1.2/PKG-INFO
--- old/process-tests-2.0.2/PKG-INFO    2019-02-11 23:56:03.000000000 +0100
+++ new/process-tests-2.1.2/PKG-INFO    2021-05-02 09:25:14.264647200 +0200
@@ -1,21 +1,23 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
 Name: process-tests
-Version: 2.0.2
-Summary: Tools for testing processes
+Version: 2.1.2
+Summary: Tools for testing processes.
 Home-page: https://github.com/ionelmc/python-process-tests
 Author: Ionel Cristian Mărieș
 Author-email: cont...@ionelmc.ro
-License: BSD
-Description: ============================
-            python-process-tests
-        ============================
-        
-        .. image:: https://badge.fury.io/py/process-tests.png
-            :alt: PYPI Package
-            :target: https://pypi.python.org/pypi/process-tests
+License: BSD-2-Clause
+Project-URL: Changelog, 
https://github.com/ionelmc/python-process-tests/blob/master/CHANGELOG.rst
+Project-URL: Issue Tracker, 
https://github.com/ionelmc/python-process-tests/issues
+Description: ========
+        Overview
+        ========
+        
+        
         
         Tools for testing processes.
         
+        * Free software: BSD 2-Clause License
+        
         Usage
         =====
         
@@ -65,6 +67,32 @@
         
         * TODO
         
+        
+        Changelog
+        =========
+        
+        2.1.2 (2020-07-23)
+        ------------------
+        
+        * Fixed another regression caused by the ``universal_newlines`` for 
Windows.
+        
+        2.1.1 (2020-07-23)
+        ------------------
+        
+        * Fixed regression caused by the ``universal_newlines`` (now the 
internals don't decode strings).
+        
+        2.1.0 (2020-07-23)
+        ------------------
+        
+        * Applied the cookiecutter-pylibrary templates.
+        * ``TestProcess`` will use ``universal_newlines`` by default for the 
contained ``subprocess.Popen`` to make sure line buffering is actually
+          used. This also fixes warnings on Python 3.
+        
+        2.x (???)
+        ---------
+        
+        * Lots of wild stuff.
+        
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
@@ -75,8 +103,13 @@
 Classifier: Programming Language :: Python
 Classifier: Topic :: Utilities
 Classifier: Topic :: Software Development :: Testing
-Classifier: Programming Language :: Python :: 2.6
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Topic :: Utilities
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/README.rst 
new/process-tests-2.1.2/README.rst
--- old/process-tests-2.0.2/README.rst  2019-01-15 22:18:12.000000000 +0100
+++ new/process-tests-2.1.2/README.rst  2021-05-02 09:25:04.000000000 +0200
@@ -1,13 +1,51 @@
-============================
-    python-process-tests
-============================
-
-.. image:: https://badge.fury.io/py/process-tests.png
-    :alt: PYPI Package
-    :target: https://pypi.python.org/pypi/process-tests
+========
+Overview
+========
+
+.. start-badges
+
+.. list-table::
+    :stub-columns: 1
+
+    * - tests
+      - | |requires|
+        |
+    * - package
+      - | |version| |wheel| |supported-versions| |supported-implementations|
+        | |commits-since|
+
+.. |requires| image:: 
https://requires.io/github/ionelmc/python-process-tests/requirements.svg?branch=master
+    :alt: Requirements Status
+    :target: 
https://requires.io/github/ionelmc/python-process-tests/requirements/?branch=master
+
+.. |version| image:: https://img.shields.io/pypi/v/process-tests.svg
+    :alt: PyPI Package latest release
+    :target: https://pypi.org/project/process-tests
+
+.. |wheel| image:: https://img.shields.io/pypi/wheel/process-tests.svg
+    :alt: PyPI Wheel
+    :target: https://pypi.org/project/process-tests
+
+.. |supported-versions| image:: 
https://img.shields.io/pypi/pyversions/process-tests.svg
+    :alt: Supported versions
+    :target: https://pypi.org/project/process-tests
+
+.. |supported-implementations| image:: 
https://img.shields.io/pypi/implementation/process-tests.svg
+    :alt: Supported implementations
+    :target: https://pypi.org/project/process-tests
+
+.. |commits-since| image:: 
https://img.shields.io/github/commits-since/ionelmc/python-process-tests/v2.1.2.svg
+    :alt: Commits since latest release
+    :target: 
https://github.com/ionelmc/python-process-tests/compare/v2.1.2...master
+
+
+
+.. end-badges
 
 Tools for testing processes.
 
+* Free software: BSD 2-Clause License
+
 Usage
 =====
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/ci/bootstrap.py 
new/process-tests-2.1.2/ci/bootstrap.py
--- old/process-tests-2.0.2/ci/bootstrap.py     1970-01-01 01:00:00.000000000 
+0100
+++ new/process-tests-2.1.2/ci/bootstrap.py     2020-07-23 17:01:59.000000000 
+0200
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+from __future__ import absolute_import
+from __future__ import print_function
+from __future__ import unicode_literals
+
+import os
+import subprocess
+import sys
+from os.path import abspath
+from os.path import dirname
+from os.path import exists
+from os.path import join
+
+base_path = dirname(dirname(abspath(__file__)))
+
+
+def check_call(args):
+    print("+", *args)
+    subprocess.check_call(args)
+
+
+def exec_in_env():
+    env_path = join(base_path, ".tox", "bootstrap")
+    if sys.platform == "win32":
+        bin_path = join(env_path, "Scripts")
+    else:
+        bin_path = join(env_path, "bin")
+    if not exists(env_path):
+        import subprocess
+
+        print("Making bootstrap env in: {0} ...".format(env_path))
+        try:
+            check_call([sys.executable, "-m", "venv", env_path])
+        except subprocess.CalledProcessError:
+            try:
+                check_call([sys.executable, "-m", "virtualenv", env_path])
+            except subprocess.CalledProcessError:
+                check_call(["virtualenv", env_path])
+        print("Installing `jinja2` into bootstrap environment...")
+        check_call([join(bin_path, "pip"), "install", "jinja2", "tox"])
+    python_executable = join(bin_path, "python")
+    if not os.path.exists(python_executable):
+        python_executable += '.exe'
+
+    print("Re-executing with: {0}".format(python_executable))
+    print("+ exec", python_executable, __file__, "--no-env")
+    os.execv(python_executable, [python_executable, __file__, "--no-env"])
+
+
+def main():
+    import jinja2
+
+    print("Project path: {0}".format(base_path))
+
+    jinja = jinja2.Environment(
+        loader=jinja2.FileSystemLoader(join(base_path, "ci", "templates")),
+        trim_blocks=True,
+        lstrip_blocks=True,
+        keep_trailing_newline=True
+    )
+
+    tox_environments = [
+        line.strip()
+        # 'tox' need not be installed globally, but must be importable
+        # by the Python that is running this script.
+        # This uses sys.executable the same way that the call in
+        # cookiecutter-pylibrary/hooks/post_gen_project.py
+        # invokes this bootstrap.py itself.
+        for line in subprocess.check_output([sys.executable, '-m', 'tox', 
'--listenvs'], universal_newlines=True).splitlines()
+    ]
+    tox_environments = [line for line in tox_environments if 
line.startswith('py')]
+
+    for name in os.listdir(join("ci", "templates")):
+        with open(join(base_path, name), "w") as fh:
+            
fh.write(jinja.get_template(name).render(tox_environments=tox_environments))
+        print("Wrote {}".format(name))
+    print("DONE.")
+
+
+if __name__ == "__main__":
+    args = sys.argv[1:]
+    if args == ["--no-env"]:
+        main()
+    elif not args:
+        exec_in_env()
+    else:
+        print("Unexpected arguments {0}".format(args), file=sys.stderr)
+        sys.exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/ci/requirements.txt 
new/process-tests-2.1.2/ci/requirements.txt
--- old/process-tests-2.0.2/ci/requirements.txt 1970-01-01 01:00:00.000000000 
+0100
+++ new/process-tests-2.1.2/ci/requirements.txt 2020-07-23 17:01:59.000000000 
+0200
@@ -0,0 +1,4 @@
+virtualenv>=16.6.0
+pip>=19.1.1
+setuptools>=18.0.1
+six>=1.14.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/setup.cfg 
new/process-tests-2.1.2/setup.cfg
--- old/process-tests-2.0.2/setup.cfg   2019-02-11 23:56:03.000000000 +0100
+++ new/process-tests-2.1.2/setup.cfg   2021-05-02 09:25:14.264647200 +0200
@@ -1,6 +1,34 @@
-[wheel]
+[bdist_wheel]
 universal = 1
 
+[flake8]
+max-line-length = 140
+exclude = .tox,.eggs,ci/templates,build,dist
+
+[tool:pytest]
+norecursedirs = 
+       migrations
+python_files = 
+       test_*.py
+       *_test.py
+       tests.py
+addopts = 
+       -ra
+       --strict
+       --doctest-modules
+       --doctest-glob=\*.rst
+       --tb=short
+testpaths = 
+       tests
+
+[tool:isort]
+force_single_line = True
+line_length = 120
+known_first_party = process_tests
+default_section = THIRDPARTY
+forced_separate = test_process_tests
+skip = .tox,.eggs,ci/templates,,build,dist
+
 [egg_info]
 tag_build = 
 tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/setup.py 
new/process-tests-2.1.2/setup.py
--- old/process-tests-2.0.2/setup.py    2019-02-11 23:55:39.000000000 +0100
+++ new/process-tests-2.1.2/setup.py    2021-05-02 09:25:04.000000000 +0200
@@ -1,23 +1,47 @@
-# -*- encoding: utf8 -*-
-from setuptools import setup, find_packages
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+from __future__ import absolute_import
+from __future__ import print_function
+
+import io
+import re
+from glob import glob
+from os.path import basename
+from os.path import dirname
+from os.path import join
+from os.path import splitext
+
+from setuptools import find_packages
+from setuptools import setup
+
+
+def read(*names, **kwargs):
+    with io.open(
+        join(dirname(__file__), *names),
+        encoding=kwargs.get('encoding', 'utf8')
+    ) as fh:
+        return fh.read()
 
-import os
 
 setup(
-    name="process-tests",
-    version="2.0.2",
-    url='https://github.com/ionelmc/python-process-tests',
-    download_url='',
-    license='BSD',
-    description="Tools for testing processes",
-    long_description=open(os.path.join(os.path.dirname(__file__), 
'README.rst')).read(),
+    name='process-tests',
+    version='2.1.2',
+    license='BSD-2-Clause',
+    description='Tools for testing processes.',
+    long_description='%s\n%s' % (
+        re.compile('^.. start-badges.*^.. end-badges', re.M | re.S).sub('', 
read('README.rst')),
+        re.sub(':[a-z]+:`~?(.*?)`', r'``\1``', read('CHANGELOG.rst'))
+    ),
     author='Ionel Cristian Mărieș',
     author_email='cont...@ionelmc.ro',
+    url='https://github.com/ionelmc/python-process-tests',
+    packages=find_packages('src'),
     package_dir={'': 'src'},
-    py_modules=['process_tests'],
+    py_modules=[splitext(basename(path))[0] for path in glob('src/*.py')],
     include_package_data=True,
     zip_safe=False,
     classifiers=[
+        # complete classifier list: 
http://pypi.python.org/pypi?%3Aaction=list_classifiers
         'Development Status :: 5 - Production/Stable',
         'Intended Audience :: Developers',
         'License :: OSI Approved :: BSD License',
@@ -27,10 +51,34 @@
         'Programming Language :: Python',
         'Topic :: Utilities',
         'Topic :: Software Development :: Testing',
-        'Programming Language :: Python :: 2.6',
         'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 3',
+        'Programming Language :: Python :: 3.5',
+        'Programming Language :: Python :: 3.6',
+        'Programming Language :: Python :: 3.7',
+        'Programming Language :: Python :: 3.8',
         'Programming Language :: Python :: Implementation :: CPython',
         'Programming Language :: Python :: Implementation :: PyPy',
+        # uncomment if you test on these interpreters:
+        # 'Programming Language :: Python :: Implementation :: IronPython',
+        # 'Programming Language :: Python :: Implementation :: Jython',
+        # 'Programming Language :: Python :: Implementation :: Stackless',
+        'Topic :: Utilities',
+    ],
+    project_urls={
+        'Changelog': 
'https://github.com/ionelmc/python-process-tests/blob/master/CHANGELOG.rst',
+        'Issue Tracker': 
'https://github.com/ionelmc/python-process-tests/issues',
+    },
+    keywords=[
+        # eg: 'keyword1', 'keyword2', 'keyword3',
+    ],
+    python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*',
+    install_requires=[
+        # eg: 'aspectlib==1.1.1', 'six>=1.7',
     ],
+    extras_require={
+        # eg:
+        #   'rst': ['docutils>=0.11'],
+        #   ':python_version=="2.6"': ['argparse'],
+    },
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/process-tests-2.0.2/src/process_tests.egg-info/PKG-INFO 
new/process-tests-2.1.2/src/process_tests.egg-info/PKG-INFO
--- old/process-tests-2.0.2/src/process_tests.egg-info/PKG-INFO 2019-02-11 
23:56:03.000000000 +0100
+++ new/process-tests-2.1.2/src/process_tests.egg-info/PKG-INFO 2021-05-02 
09:25:14.000000000 +0200
@@ -1,21 +1,23 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
 Name: process-tests
-Version: 2.0.2
-Summary: Tools for testing processes
+Version: 2.1.2
+Summary: Tools for testing processes.
 Home-page: https://github.com/ionelmc/python-process-tests
 Author: Ionel Cristian Mărieș
 Author-email: cont...@ionelmc.ro
-License: BSD
-Description: ============================
-            python-process-tests
-        ============================
-        
-        .. image:: https://badge.fury.io/py/process-tests.png
-            :alt: PYPI Package
-            :target: https://pypi.python.org/pypi/process-tests
+License: BSD-2-Clause
+Project-URL: Changelog, 
https://github.com/ionelmc/python-process-tests/blob/master/CHANGELOG.rst
+Project-URL: Issue Tracker, 
https://github.com/ionelmc/python-process-tests/issues
+Description: ========
+        Overview
+        ========
+        
+        
         
         Tools for testing processes.
         
+        * Free software: BSD 2-Clause License
+        
         Usage
         =====
         
@@ -65,6 +67,32 @@
         
         * TODO
         
+        
+        Changelog
+        =========
+        
+        2.1.2 (2020-07-23)
+        ------------------
+        
+        * Fixed another regression caused by the ``universal_newlines`` for 
Windows.
+        
+        2.1.1 (2020-07-23)
+        ------------------
+        
+        * Fixed regression caused by the ``universal_newlines`` (now the 
internals don't decode strings).
+        
+        2.1.0 (2020-07-23)
+        ------------------
+        
+        * Applied the cookiecutter-pylibrary templates.
+        * ``TestProcess`` will use ``universal_newlines`` by default for the 
contained ``subprocess.Popen`` to make sure line buffering is actually
+          used. This also fixes warnings on Python 3.
+        
+        2.x (???)
+        ---------
+        
+        * Lots of wild stuff.
+        
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
@@ -75,8 +103,13 @@
 Classifier: Programming Language :: Python
 Classifier: Topic :: Utilities
 Classifier: Topic :: Software Development :: Testing
-Classifier: Programming Language :: Python :: 2.6
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Topic :: Utilities
+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/process-tests-2.0.2/src/process_tests.egg-info/SOURCES.txt 
new/process-tests-2.1.2/src/process_tests.egg-info/SOURCES.txt
--- old/process-tests-2.0.2/src/process_tests.egg-info/SOURCES.txt      
2019-02-11 23:56:03.000000000 +0100
+++ new/process-tests-2.1.2/src/process_tests.egg-info/SOURCES.txt      
2021-05-02 09:25:14.000000000 +0200
@@ -1,11 +1,24 @@
+.bumpversion.cfg
+.cookiecutterrc
+.coveragerc
+.editorconfig
+.gitignore
+.pre-commit-config.yaml
+AUTHORS.rst
+CHANGELOG.rst
+CONTRIBUTING.rst
 LICENSE
 MANIFEST.in
 README.rst
 setup.cfg
 setup.py
+tox.ini
+ci/bootstrap.py
+ci/requirements.txt
 src/process_tests.py
 src/process_tests.egg-info/PKG-INFO
 src/process_tests.egg-info/SOURCES.txt
 src/process_tests.egg-info/dependency_links.txt
 src/process_tests.egg-info/not-zip-safe
-src/process_tests.egg-info/top_level.txt
\ No newline at end of file
+src/process_tests.egg-info/top_level.txt
+tests/test_process_tests.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/src/process_tests.py 
new/process-tests-2.1.2/src/process_tests.py
--- old/process-tests-2.0.2/src/process_tests.py        2019-02-11 
23:54:14.000000000 +0100
+++ new/process-tests-2.1.2/src/process_tests.py        2021-05-02 
09:25:04.000000000 +0200
@@ -27,6 +27,8 @@
 except ImportError:
     import unittest
 
+__version__ = '2.1.2'
+
 logger = getLogger(__name__)
 
 BAD_FD_ERRORS = tuple(getattr(errno, name) for name in ['EBADF', 'EBADFD', 
'ENOTCONN'] if hasattr(errno, name))
@@ -103,7 +105,8 @@
             except Queue.Empty:
                 break
             try:
-                data = data.decode(self.ENCODING)
+                if isinstance(data, bytes):
+                    data = data.decode(self.ENCODING)
             except Exception as exc:
                 logger.exception("%r failed to decode %r: %r", self, data, exc)
                 raise
@@ -120,6 +123,7 @@
     def __init__(self, *args, **kwargs):
         kwargs.setdefault('env', os.environ)
         kwargs.setdefault('bufsize', 1)
+        kwargs.setdefault('universal_newlines', True)
         self.proc = subprocess.Popen(
             args,
             stdout=subprocess.PIPE,
@@ -170,7 +174,8 @@
             try:
                 data, _ = self.proc.communicate()
                 try:
-                    data = data.decode(self.ENCODING)
+                    if isinstance(data, bytes):
+                        data = data.decode(self.ENCODING)
                 except Exception as exc:
                     logger.exception("%s failed to decode %r: %r", self, data, 
exc)
                     raise
@@ -268,4 +273,3 @@
 class ProcessTestCase(unittest.TestCase):
     dump_on_error = staticmethod(dump_on_error)
     wait_for_strings = staticmethod(wait_for_strings)
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/process-tests-2.0.2/tox.ini 
new/process-tests-2.1.2/tox.ini
--- old/process-tests-2.0.2/tox.ini     1970-01-01 01:00:00.000000000 +0100
+++ new/process-tests-2.1.2/tox.ini     2020-07-23 17:01:59.000000000 +0200
@@ -0,0 +1,70 @@
+[testenv:bootstrap]
+deps =
+    jinja2
+    matrix
+    tox
+skip_install = true
+commands =
+    python ci/bootstrap.py --no-env
+passenv =
+    *
+; a generative tox configuration, see: 
https://tox.readthedocs.io/en/latest/config.html#generative-envlist
+
+[tox]
+envlist =
+    clean,
+    check,
+    {py27,py35,py36,py37,py38,pypy,pypy3},
+    report
+ignore_basepython_conflict = true
+
+[testenv]
+basepython =
+    pypy: {env:TOXPYTHON:pypy}
+    pypy3: {env:TOXPYTHON:pypy3}
+    py27: {env:TOXPYTHON:python2.7}
+    py35: {env:TOXPYTHON:python3.5}
+    py36: {env:TOXPYTHON:python3.6}
+    py37: {env:TOXPYTHON:python3.7}
+    py38: {env:TOXPYTHON:python3.8}
+    {bootstrap,clean,check,report}: {env:TOXPYTHON:python3}
+setenv =
+    PYTHONPATH={toxinidir}/tests
+    PYTHONUNBUFFERED=yes
+passenv =
+    *
+usedevelop = false
+deps =
+    pytest
+    pytest-cov
+commands =
+    {posargs:pytest --cov --cov-report=term-missing -vv tests}
+
+[testenv:check]
+deps =
+    docutils
+    check-manifest
+    flake8
+    readme-renderer
+    pygments
+    isort
+skip_install = true
+commands =
+    python setup.py check --strict --metadata --restructuredtext
+    check-manifest {toxinidir}
+    flake8
+    isort --verbose --check-only --diff src tests setup.py
+
+[testenv:report]
+deps =
+    coverage
+skip_install = true
+commands =
+    coverage report
+    coverage html
+
+[testenv:clean]
+commands = coverage erase
+skip_install = true
+deps =
+    coverage

Reply via email to