Hello community,

here is the log from the commit of package python-detox for openSUSE:Factory 
checked in at 2018-08-31 10:43:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-detox (Old)
 and      /work/SRC/openSUSE:Factory/.python-detox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-detox"

Fri Aug 31 10:43:43 2018 rev:6 rq:631544 version:0.13

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-detox/python-detox.changes        
2015-05-11 19:48:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-detox.new/python-detox.changes   
2018-08-31 10:44:18.227192439 +0200
@@ -1,0 +2,15 @@
+Sat Aug 25 18:18:33 UTC 2018 - jeng...@inai.de
+
+- Use noun phrase in summary.
+
+-------------------------------------------------------------------
+Thu Aug 23 10:03:05 UTC 2018 - tchva...@suse.com
+
+- Switch to singlespec
+- Run tests
+- Update to 0.13:
+  * get compatible again to tox-2.0
+  * Add support for running detox as python -m detox
+  * use pytest for testing
+
+-------------------------------------------------------------------

Old:
----
  detox-0.9.4.tar.gz

New:
----
  detox-0.13.tar.gz

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

Other differences:
------------------
++++++ python-detox.spec ++++++
--- /var/tmp/diff_new_pack.4NZjVr/_old  2018-08-31 10:44:18.859193194 +0200
+++ /var/tmp/diff_new_pack.4NZjVr/_new  2018-08-31 10:44:18.863193199 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-detox
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,31 +16,27 @@
 #
 
 
+%{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-detox
-Version:        0.9.4
+Version:        0.13
 Release:        0
-Summary:        Distributing activities of the tox tool
+Summary:        Distributed variant of the tox tool
 License:        MIT
 Group:          Development/Languages/Python
-Url:            http://bitbucket.org/hpk42/detox
-Source:         
https://pypi.python.org/packages/source/d/detox/detox-%{version}.tar.gz
-BuildRequires:  python-devel
-BuildRequires:  python-setuptools
-# Test requirements:
-BuildRequires:  python-eventlet >= 0.15.0
-BuildRequires:  python-nose
-BuildRequires:  python-py >= 1.4.13
-BuildRequires:  python-pytest
-BuildRequires:  python-tox >= 1.9.0
+URL:            http://bitbucket.org/hpk42/detox
+Source:         
https://files.pythonhosted.org/packages/source/d/detox/detox-%{version}.tar.gz
+BuildRequires:  %{python_module eventlet >= 0.15.0}
+BuildRequires:  %{python_module py >= 1.4.27}
+BuildRequires:  %{python_module pytest}
+BuildRequires:  %{python_module setuptools}
+BuildRequires:  %{python_module tox >= 2}
+BuildRequires:  fdupes
+BuildRequires:  python-rpm-macros
 Requires:       python-eventlet >= 0.15.0
-Requires:       python-py >= 1.4.13
-Requires:       python-tox >= 1.9.0
-BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-%if 0%{?suse_version} && 0%{?suse_version} <= 1110
-%{!?python_sitelib: %global python_sitelib %(python -c "from 
distutils.sysconfig import get_python_lib; print get_python_lib()")}
-%else
+Requires:       python-py >= 1.4.2713
+Requires:       python-tox >= 2
 BuildArch:      noarch
-%endif
+%python_subpackages
 
 %description
 detox is the distributed version of "tox".  It makes efficient use of multiple
@@ -56,18 +52,21 @@
 %setup -q -n detox-%{version}
 
 %build
-python setup.py build
+%python_build
 
 %install
-python setup.py install --prefix=%{_prefix} --root=%{buildroot}
+%python_install
+%python_expand %fdupes %{buildroot}%{$python_sitelib}
 
-#%%check
-#nosetests
-
-%files
-%defattr(-,root,root,-)
-%doc LICENSE CHANGELOG
-%{_bindir}/detox
+%check
+export PATH="$PATH:%{buildroot}%{_bindir}"
+# All 3 skipped tests just timeout in OBS
+%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} 
py.test-%{$python_version} -k 'not (test_getvenv or test_test or test_runtests)'
+
+%files %{python_files}
+%license LICENSE
+%doc CHANGELOG
+%python3_only %{_bindir}/detox
 %{python_sitelib}/*
 
 %changelog

++++++ detox-0.9.4.tar.gz -> detox-0.13.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/CHANGELOG new/detox-0.13/CHANGELOG
--- old/detox-0.9.4/CHANGELOG   2015-02-24 15:51:26.000000000 +0100
+++ new/detox-0.13/CHANGELOG    2018-08-20 17:51:42.000000000 +0200
@@ -1,3 +1,38 @@
+0.13.0
+-----------------------
+- (fix `#283 <https://github.com/tox-dev/tox/issues/283>`_) detox creates 
virtualenvs 
+  repeatedly and unnecessarily - by Thomas Steinke
+
+0.12.0
+-----------------------
+
+- (fix `#792 <https://github.com/tox-dev/tox/issues/792>`_) bump tox version 
constraint
+  to <4.0 - by Pi Delport
+- support and test with Python 2.7, 3.4+ - by Miro Hrončok
+- fix project url to point ot github - by Neil Halelamien
+- remove some unused imports - by Nir Soffer
+
+
+0.11.0
+-----------------------
+
+- #406: Add support for running detox as python -m detox
+  Thanks André Caron (@AndreLouisCaron).
+
+- (infrastructure) add Travis CI setup.
+  Thanks Timothée Mazzucotelli (@Pawamoy).
+
+- add "-n NUMPROC" option to set number of processes.  The default
+  is the number of CPUs as determined by multiprocessing.cpu_count()
+  or "2" if the call does not work (e.g. on py27/windows).
+  Thanks Timothée Mazzucotelli (@Pawamoy).
+
+
+0.10.0
+-----------------------
+
+- get compatible again to tox-2.0
+
 0.9.4
 -----------------------
 
@@ -30,7 +65,7 @@
 0.9.1
 -----------------------
 
-- fix issue5 - small adjustments to work with latest tox-1.4.3 version 
+- fix issue5 - small adjustments to work with latest tox-1.4.3 version
 
 0.9
 -----------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/MANIFEST.in new/detox-0.13/MANIFEST.in
--- old/detox-0.9.4/MANIFEST.in 2015-02-24 15:51:26.000000000 +0100
+++ new/detox-0.13/MANIFEST.in  2018-04-20 13:34:23.000000000 +0200
@@ -3,3 +3,6 @@
 include tox.ini
 include LICENSE
 graft tests
+
+global-exclude __pycache__
+global-exclude *.py[cod]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/PKG-INFO new/detox-0.13/PKG-INFO
--- old/detox-0.9.4/PKG-INFO    2015-02-24 15:51:27.000000000 +0100
+++ new/detox-0.13/PKG-INFO     2018-08-20 18:49:39.000000000 +0200
@@ -1,10 +1,10 @@
 Metadata-Version: 1.1
 Name: detox
-Version: 0.9.4
-Summary: distributing activities of the tox tool (py2 only)
-Home-page: http://bitbucket.org/hpk42/detox
+Version: 0.13
+Summary: distributing activities of the tox tool
+Home-page: https://github.com/tox-dev/detox
 Author: holger krekel
-Author-email: holger at merlinux.eu
+Author-email: hol...@merlinux.eu
 License: MIT
 Description: 
         What is detox?
@@ -19,16 +19,16 @@
         in the same way and with the same options with which you would run
         ``tox``, see the `tox home page`_ for more info.
         
-        Please file issues as "tox" issues using the "detox" component:
+        Please file issues as "tox" issues using the "detox" label:
         
-            https://bitbucket.org/hpk42/tox/issues
+            https://github.com/tox-dev/tox/issues
         
         .. note::
         
-            detox runs only on python2.6 and python2.7 (but supports creation 
of
-            python3 and all environments supported of the underlying "tox" 
command)
+            detox runs on python2.7 and python3.4+ (but supports creation of
+            all environments supported of the underlying "tox" command)
         
-        .. _`tox home page`: http://tox.testrun.org/
+        .. _`tox home page`: http://tox.readthedocs.org
         
 Platform: unix
 Platform: linux
@@ -36,11 +36,17 @@
 Platform: cygwin
 Platform: win32
 Classifier: Development Status :: 4 - Beta
+Classifier: Framework :: tox
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: MIT License
 Classifier: Operating System :: POSIX
 Classifier: Operating System :: Microsoft :: Windows
 Classifier: Operating System :: MacOS :: MacOS X
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
 Classifier: Topic :: Software Development :: Testing
 Classifier: Topic :: Software Development :: Libraries
 Classifier: Topic :: Utilities
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/README.md new/detox-0.13/README.md
--- old/detox-0.9.4/README.md   1970-01-01 01:00:00.000000000 +0100
+++ new/detox-0.13/README.md    2018-04-14 14:47:13.000000000 +0200
@@ -0,0 +1,17 @@
+[![Build 
Status](https://travis-ci.org/tox-dev/detox.svg?branch=master)](https://travis-ci.org/tox-dev/detox)
+
+# What is detox?
+
+detox is the distributed version of [tox](https://pypi.org/project/tox/).  It 
makes efficient use of multiple CPUs by running all possible activities in 
parallel.  It has the same options and configuration that tox has so after 
installation can just run:
+
+    detox
+
+in the same way and with the same options with which you would run `tox`, see 
the [tox home page](http://tox.readthedocs.io) for more info.
+
+Additionally, detox offers a `-n` or `--num` option to set the number of 
concurrent processes to use.
+
+Please file issues as ["tox" issues](https://github.com/tox-dev/tox/issues) 
using a "detox: " prefix in the issue title.
+
+## Note
+
+detox runs on python2.7 and python3.4+ (but supports creation of all 
environments supported of the underlying "tox" command)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/detox/__init__.py 
new/detox-0.13/detox/__init__.py
--- old/detox-0.9.4/detox/__init__.py   2015-02-24 15:51:26.000000000 +0100
+++ new/detox-0.13/detox/__init__.py    2018-04-20 12:17:11.000000000 +0200
@@ -1 +1 @@
-__version__ = '0.9.4'
+__version__ = '0.12'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/detox/__main__.py 
new/detox-0.13/detox/__main__.py
--- old/detox-0.9.4/detox/__main__.py   1970-01-01 01:00:00.000000000 +0100
+++ new/detox-0.13/detox/__main__.py    2018-04-11 13:12:37.000000000 +0200
@@ -0,0 +1,5 @@
+from detox.main import main
+
+# Enable ``python -m detox ...``.
+if __name__ == '__main__':
+    main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/detox/main.py 
new/detox-0.13/detox/main.py
--- old/detox-0.9.4/detox/main.py       2015-02-24 15:51:26.000000000 +0100
+++ new/detox-0.13/detox/main.py        2018-08-20 17:51:42.000000000 +0200
@@ -1,12 +1,11 @@
 import sys
-import argparse
 import py
 import detox
 from detox.proc import Detox
 
 def parse(args):
-    import tox._config
-    return tox._config.parseconfig(args, "detox")
+    from tox.session import prepare
+    return prepare(args)
 
 def main(args=None):
     if args is None:
@@ -21,4 +20,4 @@
     #detox.toxsession.report.line(
     #    "detox speed-up: %.2f (elapsed %.2f, cumulated %.2f)" % (
     #        cumulated / elapsed, elapsed, cumulated), bold=True)
-    return retcode
+    raise SystemExit(retcode)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/detox/proc.py 
new/detox-0.13/detox/proc.py
--- old/detox-0.9.4/detox/proc.py       2015-02-24 15:51:26.000000000 +0100
+++ new/detox-0.13/detox/proc.py        2018-08-20 17:51:42.000000000 +0200
@@ -1,14 +1,10 @@
 from __future__ import with_statement
 
 import eventlet
-import sys
-import py
 from eventlet.timeout import Timeout
 from eventlet.green.subprocess import Popen, PIPE, STDOUT
 from eventlet import GreenPool
-import eventlet
-import tox._config
-import tox._cmdline
+import tox.session
 
 def timelimited(secs, func):
     if secs is not None:
@@ -17,7 +13,7 @@
     return func()
 
 class FileSpinner:
-    chars = "- \ | / - \ | /".split()
+    chars = r"- \ | / - \ | /".split()
     def __init__(self):
         self.path2last = {}
 
@@ -33,7 +29,7 @@
         return self.chars[charindex % len(self.chars)]
 
 
-class ToxReporter(tox._cmdline.Reporter):
+class ToxReporter(tox.session.Reporter):
     sortorder = ("runtests command installdeps installpkg inst inst-nodeps "
         "sdist-make create recreate".split())
 
@@ -112,12 +108,12 @@
         try:
             return self._toxsession
         except AttributeError:
-            self._toxsession = tox._cmdline.Session(
+            self._toxsession = tox.session.Session(
                 self._toxconfig, Report=ToxReporter, popen=Popen)
             return self._toxsession
 
     def provide_sdist(self):
-        sdistpath = self.toxsession.sdist()
+        sdistpath = self.toxsession.get_installpkg_path()
         if not sdistpath:
             raise SystemExit(1)
         return sdistpath
@@ -138,6 +134,7 @@
         if self.toxsession.config.skipsdist:
             venv, = self.getresources("venv:%s" % venvname)
             if venv:
+                venv.finish()
                 self.toxsession.runtestenv(venv, redirect=True)
         else:
             venv, sdist = self.getresources("venv:%s" % venvname, "sdist")
@@ -147,7 +144,7 @@
                     self.toxsession.runtestenv(venv, redirect=True)
 
     def runtestsmulti(self, envlist):
-        pool = GreenPool()
+        pool = GreenPool(size=self._toxconfig.option.numproc)
         for env in envlist:
             pool.spawn_n(self.runtests, env)
         pool.waitall()
@@ -162,7 +159,7 @@
     def __init__(self, providerbase):
         self._providerbase = providerbase
         self._spec2thread = {}
-        self._pool = GreenPool(1000)
+        self._pool = GreenPool()
         self._resources = {}
 
     def _dispatchprovider(self, spec):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/detox/tox_proclimit.py 
new/detox-0.13/detox/tox_proclimit.py
--- old/detox-0.9.4/detox/tox_proclimit.py      1970-01-01 01:00:00.000000000 
+0100
+++ new/detox-0.13/detox/tox_proclimit.py       2018-04-16 13:10:08.000000000 
+0200
@@ -0,0 +1,27 @@
+import argparse
+import multiprocessing
+
+from tox import hookimpl
+
+
+@hookimpl
+def tox_addoption(parser):
+    def positive_integer(value):
+        ivalue = int(value)
+        if ivalue <= 0:
+            raise argparse.ArgumentTypeError(
+                "%s is an invalid positive int value" % value)
+        return ivalue
+
+    try:
+        num_proc = multiprocessing.cpu_count()
+    except Exception:
+        num_proc = 2
+    parser.add_argument(
+        "-n", "--num",
+        type=positive_integer,
+        action="store",
+        default=num_proc,
+        dest="numproc",
+        help="set the number of concurrent processes "
+             "(default %s)." % num_proc)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/detox.egg-info/PKG-INFO 
new/detox-0.13/detox.egg-info/PKG-INFO
--- old/detox-0.9.4/detox.egg-info/PKG-INFO     2015-02-24 15:51:27.000000000 
+0100
+++ new/detox-0.13/detox.egg-info/PKG-INFO      2018-08-20 18:49:39.000000000 
+0200
@@ -1,10 +1,10 @@
 Metadata-Version: 1.1
 Name: detox
-Version: 0.9.4
-Summary: distributing activities of the tox tool (py2 only)
-Home-page: http://bitbucket.org/hpk42/detox
+Version: 0.13
+Summary: distributing activities of the tox tool
+Home-page: https://github.com/tox-dev/detox
 Author: holger krekel
-Author-email: holger at merlinux.eu
+Author-email: hol...@merlinux.eu
 License: MIT
 Description: 
         What is detox?
@@ -19,16 +19,16 @@
         in the same way and with the same options with which you would run
         ``tox``, see the `tox home page`_ for more info.
         
-        Please file issues as "tox" issues using the "detox" component:
+        Please file issues as "tox" issues using the "detox" label:
         
-            https://bitbucket.org/hpk42/tox/issues
+            https://github.com/tox-dev/tox/issues
         
         .. note::
         
-            detox runs only on python2.6 and python2.7 (but supports creation 
of
-            python3 and all environments supported of the underlying "tox" 
command)
+            detox runs on python2.7 and python3.4+ (but supports creation of
+            all environments supported of the underlying "tox" command)
         
-        .. _`tox home page`: http://tox.testrun.org/
+        .. _`tox home page`: http://tox.readthedocs.org
         
 Platform: unix
 Platform: linux
@@ -36,11 +36,17 @@
 Platform: cygwin
 Platform: win32
 Classifier: Development Status :: 4 - Beta
+Classifier: Framework :: tox
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: MIT License
 Classifier: Operating System :: POSIX
 Classifier: Operating System :: Microsoft :: Windows
 Classifier: Operating System :: MacOS :: MacOS X
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
 Classifier: Topic :: Software Development :: Testing
 Classifier: Topic :: Software Development :: Libraries
 Classifier: Topic :: Utilities
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/detox.egg-info/SOURCES.txt 
new/detox-0.13/detox.egg-info/SOURCES.txt
--- old/detox-0.9.4/detox.egg-info/SOURCES.txt  2015-02-24 15:51:27.000000000 
+0100
+++ new/detox-0.13/detox.egg-info/SOURCES.txt   2018-08-20 18:49:39.000000000 
+0200
@@ -1,11 +1,15 @@
 CHANGELOG
 LICENSE
 MANIFEST.in
+README.md
+setup.cfg
 setup.py
 tox.ini
 detox/__init__.py
+detox/__main__.py
 detox/main.py
 detox/proc.py
+detox/tox_proclimit.py
 detox.egg-info/PKG-INFO
 detox.egg-info/SOURCES.txt
 detox.egg-info/dependency_links.txt
@@ -13,4 +17,5 @@
 detox.egg-info/requires.txt
 detox.egg-info/top_level.txt
 tests/conftest.py
-tests/test_detox.py
\ No newline at end of file
+tests/test_detox.py
+tests/test_main.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/detox.egg-info/entry_points.txt 
new/detox-0.13/detox.egg-info/entry_points.txt
--- old/detox-0.9.4/detox.egg-info/entry_points.txt     2015-02-24 
15:51:27.000000000 +0100
+++ new/detox-0.13/detox.egg-info/entry_points.txt      2018-08-20 
18:49:39.000000000 +0200
@@ -1,3 +1,6 @@
 [console_scripts]
 detox=detox.main:main
 
+[tox]
+proclimit = detox.tox_proclimit
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/detox.egg-info/requires.txt 
new/detox-0.13/detox.egg-info/requires.txt
--- old/detox-0.9.4/detox.egg-info/requires.txt 2015-02-24 15:51:27.000000000 
+0100
+++ new/detox-0.13/detox.egg-info/requires.txt  2018-08-20 18:49:39.000000000 
+0200
@@ -1,3 +1,3 @@
-tox>=1.9.0
-py>=1.4.13
+tox<4,>=2
+py>=1.4.27
 eventlet>=0.15.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/setup.cfg new/detox-0.13/setup.cfg
--- old/detox-0.9.4/setup.cfg   2015-02-24 15:51:27.000000000 +0100
+++ new/detox-0.13/setup.cfg    2018-08-20 18:49:39.000000000 +0200
@@ -1,5 +1,10 @@
+[bdist_wheel]
+universal = 1
+
+[devpi:upload]
+formats = sdist.tgz,bdist_wheel
+
 [egg_info]
 tag_build = 
 tag_date = 0
-tag_svn_revision = 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/setup.py new/detox-0.13/setup.py
--- old/detox-0.9.4/setup.py    2015-02-24 15:51:26.000000000 +0100
+++ new/detox-0.13/setup.py     2018-08-20 18:47:59.000000000 +0200
@@ -1,8 +1,6 @@
-import os, sys
-
 from setuptools import setup
 
-long_description="""
+long_description = """
 What is detox?
 ==========================
 
@@ -15,45 +13,53 @@
 in the same way and with the same options with which you would run
 ``tox``, see the `tox home page`_ for more info.
 
-Please file issues as "tox" issues using the "detox" component:
+Please file issues as "tox" issues using the "detox" label:
 
-    https://bitbucket.org/hpk42/tox/issues
+    https://github.com/tox-dev/tox/issues
 
 .. note::
 
-    detox runs only on python2.6 and python2.7 (but supports creation of
-    python3 and all environments supported of the underlying "tox" command)
+    detox runs on python2.7 and python3.4+ (but supports creation of
+    all environments supported of the underlying "tox" command)
 
-.. _`tox home page`: http://tox.testrun.org/
+.. _`tox home page`: http://tox.readthedocs.org
 """
 
+
 def main():
     setup(
         name='detox',
-        description='distributing activities of the tox tool (py2 only)',
-        long_description = long_description,
-        version='0.9.4',
-        url='http://bitbucket.org/hpk42/detox',
+        description='distributing activities of the tox tool',
+        long_description=long_description,
+        version='0.13',
+        url='https://github.com/tox-dev/detox',
         license='MIT',
         platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],
         author='holger krekel',
-        author_email='holger at merlinux.eu',
+        author_email='hol...@merlinux.eu',
         classifiers=['Development Status :: 4 - Beta',
+                     'Framework :: tox',
                      'Intended Audience :: Developers',
                      'License :: OSI Approved :: MIT License',
                      'Operating System :: POSIX',
                      'Operating System :: Microsoft :: Windows',
                      'Operating System :: MacOS :: MacOS X',
+                     'Programming Language :: Python :: 2.7',
+                     'Programming Language :: Python :: 3.4',
+                     'Programming Language :: Python :: 3.5',
+                     'Programming Language :: Python :: 3.6',
+                     'Programming Language :: Python :: 3.7',
                      'Topic :: Software Development :: Testing',
                      'Topic :: Software Development :: Libraries',
                      'Topic :: Utilities',
                      'Programming Language :: Python',
                      ],
         packages=['detox', ],
-        install_requires=['tox>=1.9.0',
-            'py>=1.4.13', 'eventlet>=0.15.0',],
-        entry_points={'console_scripts': 'detox=detox.main:main'},
+        install_requires=['tox>=2,<4', 'py>=1.4.27', 'eventlet>=0.15.0'],
+        entry_points={'console_scripts': 'detox=detox.main:main',
+                      'tox': ['proclimit = detox.tox_proclimit']},
     )
 
+
 if __name__ == '__main__':
     main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/tests/conftest.py 
new/detox-0.13/tests/conftest.py
--- old/detox-0.9.4/tests/conftest.py   2015-02-24 15:51:26.000000000 +0100
+++ new/detox-0.13/tests/conftest.py    2018-08-20 18:32:26.000000000 +0200
@@ -44,6 +44,20 @@
     tmpdir.join("example2", "__init__.py").ensure()
 
 
+def create_example3(tmpdir):
+    tmpdir.join("tox.ini").write(d("""
+        [tox]
+        skipsdist = True
+
+        [testenv]
+        commands = python -c 'import time; time.sleep(1)'
+
+        [testenv:py1]
+        [testenv:py2]
+    """))
+    tmpdir.join("example3", "__init__.py").ensure()
+
+
 def pytest_configure(config):
     config.addinivalue_line("markers", "example1: use example1 for setup")
     config.addinivalue_line("markers", "example2: use example2 for setup")
@@ -151,4 +165,3 @@
     result = testdir.runpytest()
     assert "failed to timeout" not in result.stdout.str()
     result.stdout.fnmatch_lines(["*Timeout: 0.01*"])
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/tests/test_detox.py 
new/detox-0.13/tests/test_detox.py
--- old/detox-0.9.4/tests/test_detox.py 2015-02-24 15:51:26.000000000 +0100
+++ new/detox-0.13/tests/test_detox.py  2018-04-11 13:12:37.000000000 +0200
@@ -1,3 +1,5 @@
+from datetime import datetime, timedelta
+
 import pytest
 import eventlet
 import detox
@@ -86,3 +88,47 @@
             "py*getenv*",
             "py*create:*",
         ])
+
+
+class TestProcLimitOption:
+    pytestmark = [pytest.mark.example3]
+
+    def test_runtestmulti(self):
+        class MyConfig:
+            class MyOption:
+                numproc = 7
+            option = MyOption()
+
+        l = []
+
+        def MyGreenPool(**kw):
+            l.append(kw)
+            # Building a Detox object will already call GreenPool(),
+            # so we have to let MyGreenPool being called twice before raise
+            if len(l) == 2:
+                raise ValueError
+
+        from detox import proc
+        setattr(proc, 'GreenPool', MyGreenPool)
+        with pytest.raises(ValueError):
+            d = proc.Detox(MyConfig())
+            d.runtestsmulti(['env1', 'env2', 'env3'])  # Fake env list
+
+        assert l[0] == {}  # When building Detox object
+        assert l[1] == {'size': 7}  # When calling runtestsmulti
+
+    @pytest.mark.timeout(60)
+    def test_runtests(self, cmd):
+        now1 = datetime.now()
+        cmd.rundetox("-n", "1", "-epy1,py2")
+        then1 = datetime.now()
+        delta1 = then1 - now1
+        assert delta1 >= timedelta(seconds=2)
+
+        now2 = datetime.now()
+        cmd.rundetox("--num", "2", "-epy1,py2")
+        then2 = datetime.now()
+        delta2 = then2 - now2
+        assert delta2 >= timedelta(seconds=1)
+
+        assert delta1 >= delta2, 'pool size=2 took much time than pool size=1'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/tests/test_main.py 
new/detox-0.13/tests/test_main.py
--- old/detox-0.9.4/tests/test_main.py  1970-01-01 01:00:00.000000000 +0100
+++ new/detox-0.13/tests/test_main.py   2018-04-11 13:12:37.000000000 +0200
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+
+
+import subprocess
+import sys
+
+
+def invoke(command, success_codes=(0,)):
+    try:
+        output = subprocess.check_output(command, stderr=subprocess.STDOUT)
+        status = 0
+    except subprocess.CalledProcessError as error:
+        output = error.output
+        status = error.returncode
+    output = output.decode('utf-8')
+    if status not in success_codes:
+        raise Exception(
+            'Command %r return exit code %d and output: """%s""".' % (
+                command,
+                status,
+                output,
+            )
+        )
+    return status, output
+
+
+def test_run_as_module():
+    """Can be run as `python -m detox ...`."""
+    status, output = invoke([
+        sys.executable, '-m', 'detox', '--help',
+    ])
+    assert status == 0
+    assert output.startswith('usage:')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/detox-0.9.4/tox.ini new/detox-0.13/tox.ini
--- old/detox-0.9.4/tox.ini     2015-02-24 15:51:26.000000000 +0100
+++ new/detox-0.13/tox.ini      2018-04-20 15:51:25.000000000 +0200
@@ -1,8 +1,8 @@
 [tox]
-envlist=py26,py27
+envlist = py27,py34,py35,py36,py37
 
 [testenv]
-commands=py.test --junitxml={envlogdir}/junit-{envname}.xml {posargs}
-deps=
+deps =
     pytest
     tox
+commands = pytest --junitxml={envlogdir}/junit-{envname}.xml {posargs}


Reply via email to