diff options
author | holger krekel <holger@merlinux.eu> | 2011-05-26 17:46:39 +0200 |
---|---|---|
committer | holger krekel <holger@merlinux.eu> | 2011-05-26 17:46:39 +0200 |
commit | aaff4d82c2979ab5081f1b8192023652bc563e67 (patch) | |
tree | 103e56d77f19082c9d58ea3f719a20a60c9d6d28 | |
parent | a22088adb758343d28c10d3880cede6530e163d4 (diff) | |
download | tox-aaff4d82c2979ab5081f1b8192023652bc563e67.tar.gz |
fixes issue 7.
implement a "minversion" directive to allow for
specifying a required tox version
-rw-r--r-- | doc/config.txt | 1 | ||||
-rw-r--r-- | doc/index.txt | 1 | ||||
-rw-r--r-- | tests/test_cmdline.py | 14 | ||||
-rw-r--r-- | tests/test_config.py | 8 | ||||
-rw-r--r-- | tox.ini | 2 | ||||
-rw-r--r-- | tox/_cmdline.py | 9 | ||||
-rw-r--r-- | tox/_config.py | 2 |
7 files changed, 36 insertions, 1 deletions
diff --git a/doc/config.txt b/doc/config.txt index 09851e8..b1cbc6d 100644 --- a/doc/config.txt +++ b/doc/config.txt @@ -15,6 +15,7 @@ Tox global settings List of optional global options:: [tox] + minversion=ver # minimally required tox version toxworkdir=path # tox working directory, defaults to {toxinidir}/.tox setupdir=path # defaults to {toxinidir} distdir=path # defaults to {toxworkdir}/dist diff --git a/doc/index.txt b/doc/index.txt index d82cfde..6aac745 100644 --- a/doc/index.txt +++ b/doc/index.txt @@ -125,6 +125,7 @@ Notes and known limitations changelog links announce/release-0.5 + announce/release-1.0 .. include:: links.txt diff --git a/tests/test_cmdline.py b/tests/test_cmdline.py index 37816c8..1ca53aa 100644 --- a/tests/test_cmdline.py +++ b/tests/test_cmdline.py @@ -160,6 +160,20 @@ def XXX_test_package(cmd, initproj): "*created sdist package at*", ]) +def test_minversion(cmd, initproj): + initproj("interp123-0.5", filedefs={ + 'tests': {'test_hello.py': "def test_hello(): pass"}, + 'tox.ini': ''' + [tox] + minversion = 6.0 + ''' + }) + result = cmd.run("tox", "-v") + result.stdout.fnmatch_lines([ + "*ERROR*tox version is * required is at least 6.0*" + ]) + assert result.ret + def test_unknown_interpreter(cmd, initproj): initproj("interp123-0.5", filedefs={ 'tests': {'test_hello.py': "def test_hello(): pass"}, diff --git a/tests/test_config.py b/tests/test_config.py index 0934e9c..8811554 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -557,6 +557,14 @@ class TestGlobalOptions: bp = "python%s.%s" %(name[2], name[3]) assert env.basepython == bp + def test_minversion(self, tmpdir, newconfig, monkeypatch): + inisource = """ + [tox] + minversion = 3.0 + """ + config = newconfig([], inisource) + assert config.minversion == "3.0" + def test_defaultenv_commandline(self, tmpdir, newconfig, monkeypatch): config = newconfig(["-epy24"], "") env = config.envconfigs['py24'] @@ -21,4 +21,4 @@ deps=:pypi:sphinx commands= py.test -v \ --junitxml={envlogdir}/junit-{envname}.xml \ - check_sphinx.py + check_sphinx.py [] diff --git a/tox/_cmdline.py b/tox/_cmdline.py index 8a166e5..54e2013 100644 --- a/tox/_cmdline.py +++ b/tox/_cmdline.py @@ -115,6 +115,15 @@ class Session: def runcommand(self): #tw.sep("-", "tox info from %s" % self.options.configfile) self.report.using("tox-%s from %s" %(tox.__version__, tox.__file__)) + if self.config.minversion: + minversion = NormalizedVersion(self.config.minversion) + toxversion = NormalizedVersion(tox.__version__) + #self.report.using("requires at least %s" %(minversion,)) + if toxversion < minversion: + self.report.error( + "tox version is %s, required is at least %s" %( + toxversion, minversion)) + raise SystemExit(1) if self.config.opts.showconfig: self.showconfig() else: diff --git a/tox/_config.py b/tox/_config.py index 36ecfa3..f40e60a 100644 --- a/tox/_config.py +++ b/tox/_config.py @@ -104,6 +104,7 @@ class parseini: config.opts.configfile = py.path.local(config.opts.configfile) config.toxinipath = config.opts.configfile config.toxinidir = toxinidir = config.toxinipath.dirpath() + if not config.toxinipath.check(): feedback("toxini file %r does not exist" %( str(config.toxinipath)), sysexit=True) @@ -127,6 +128,7 @@ class parseini: homedir=config.homedir) config.toxworkdir = reader.getpath(toxsection, "toxworkdir", "{toxinidir}/.tox") + config.minversion = reader.getdefault(toxsection, "minversion", None) # determine indexserver dictionary config.indexserver = {'default': IndexServerConfig('default')} |