[Pytest-commit] commit/tox: obestwalter: Merged in nakatoio/tox (pull request #190)

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Mon Jun 20 09:22:21 EDT 2016


1 new commit in tox:

https://bitbucket.org/hpk42/tox/commits/c07a95573512/
Changeset:   c07a95573512
User:        obestwalter
Date:        2016-06-20 13:22:16+00:00
Summary:     Merged in nakatoio/tox (pull request #190)

Process minversion before all else
Affected #:  4 files

diff -r 62c553e32ce9e20de98d035721ce3f5313903ea6 -r c07a9557351251619b76cbefb9622fcdf9377ca6 tests/test_config.py
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -1440,8 +1440,8 @@
             [tox]
             minversion = 3.0
         """
-        config = newconfig([], inisource)
-        assert config.minversion == "3.0"
+        with py.test.raises(tox.exception.MinVersionError):
+            config = newconfig([], inisource)
 
     def test_skip_missing_interpreters_true(self, tmpdir, newconfig, monkeypatch):
         inisource = """

diff -r 62c553e32ce9e20de98d035721ce3f5313903ea6 -r c07a9557351251619b76cbefb9622fcdf9377ca6 tox/__init__.py
--- a/tox/__init__.py
+++ b/tox/__init__.py
@@ -23,5 +23,11 @@
         """ a directory did not exist. """
     class MissingDependency(Error):
         """ a dependency could not be found or determined. """
+    class MinVersionError(Error):
+        """ the installed tox version is lower than requested minversion. """
+
+        def __init__(self, message):
+            self.message = message
+            super(exception.MinVersionError, self).__init__(message)
 
 from tox.session import main as cmdline  # noqa

diff -r 62c553e32ce9e20de98d035721ce3f5313903ea6 -r c07a9557351251619b76cbefb9622fcdf9377ca6 tox/config.py
--- a/tox/config.py
+++ b/tox/config.py
@@ -12,6 +12,7 @@
 
 import tox.interpreters
 from tox import hookspecs
+from tox._verlib import NormalizedVersion
 
 import py
 
@@ -664,8 +665,18 @@
 
         reader.addsubstitutions(toxinidir=config.toxinidir,
                                 homedir=config.homedir)
+        # As older versions of tox may have bugs or incompatabilities that
+        # prevent parsing of tox.ini this must be the first thing checked.
+        config.minversion = reader.getstring("minversion", None)
+        # Parse our compatability immediately
+        if config.minversion:
+            minversion = NormalizedVersion(self.config.minversion)
+            toxversion = NormalizedVersion(tox.__version__)
+            if toxversion < minversion:
+                raise tox.exception.MinVersionError(
+                    "tox version is %s, required is at least %s" % (
+                        toxversion, minversion))
         config.toxworkdir = reader.getpath("toxworkdir", "{toxinidir}/.tox")
-        config.minversion = reader.getstring("minversion", None)
 
         if not config.option.skip_missing_interpreters:
             config.option.skip_missing_interpreters = \

diff -r 62c553e32ce9e20de98d035721ce3f5313903ea6 -r c07a9557351251619b76cbefb9622fcdf9377ca6 tox/session.py
--- a/tox/session.py
+++ b/tox/session.py
@@ -40,6 +40,10 @@
         raise SystemExit(retcode)
     except KeyboardInterrupt:
         raise SystemExit(2)
+    except tox.exception.MinVersionError as e:
+        r = Reporter(None)
+        r.error(e.message)
+        raise SystemExit(1)
 
 
 def show_help(config):
@@ -233,6 +237,12 @@
         self._reportedlines = []
         # self.cumulated_time = 0.0
 
+    def _get_verbosity(self):
+        if self.session:
+            return self.session.config.option.verbosity
+        else:
+            return 2
+
     def logpopen(self, popen, env):
         """ log information about the action.popen() created process. """
         cmd = " ".join(map(str, popen.args))
@@ -257,11 +267,11 @@
         self.tw.sep("_", "summary")
 
     def info(self, msg):
-        if self.session.config.option.verbosity >= 2:
+        if self._get_verbosity() >= 2:
             self.logline(msg)
 
     def using(self, msg):
-        if self.session.config.option.verbosity >= 1:
+        if self._get_verbosity() >= 1:
             self.logline("using %s" % (msg,), bold=True)
 
     def keyboard_interrupt(self):
@@ -297,15 +307,15 @@
         self.tw.line("%s" % msg, **opts)
 
     def verbosity0(self, msg, **opts):
-        if self.session.config.option.verbosity >= 0:
+        if self._get_verbosity() >= 0:
             self.logline("%s" % msg, **opts)
 
     def verbosity1(self, msg, **opts):
-        if self.session.config.option.verbosity >= 1:
+        if self._get_verbosity() >= 1:
             self.logline("%s" % msg, **opts)
 
     def verbosity2(self, msg, **opts):
-        if self.session.config.option.verbosity >= 2:
+        if self._get_verbosity() >= 2:
             self.logline("%s" % msg, **opts)
 
     # def log(self, msg):
@@ -359,14 +369,6 @@
 
     def runcommand(self):
         self.report.using("tox-%s from %s" % (tox.__version__, tox.__file__))
-        if self.config.minversion:
-            minversion = NormalizedVersion(self.config.minversion)
-            toxversion = NormalizedVersion(tox.__version__)
-            if toxversion < minversion:
-                self.report.error(
-                    "tox version is %s, required is at least %s" % (
-                        toxversion, minversion))
-                raise SystemExit(1)
         if self.config.option.showconfig:
             self.showconfig()
         elif self.config.option.listenvs:

Repository URL: https://bitbucket.org/hpk42/tox/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.


More information about the pytest-commit mailing list