3 new commits in tox:

https://bitbucket.org/hpk42/tox/commits/54204edbaa7e/
Changeset:   54204edbaa7e
User:        carljm
Date:        2014-10-06 23:36:05+00:00
Summary:     Add --pre and testenv pip_pre options, no --pre by default.
Affected #:  6 files

diff -r e89dddec56e6c5844aeb6cc50ea5e2956f53bca6 -r 
54204edbaa7e82c125a1034ba3e1f124ff0cbb1e CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,12 @@
+1.9.0.dev
+-----------
+
+- fix issue193: Remove ``--pre`` from the default ``install_command``; by
+  default tox will now only install final releases from PyPI for unpinned
+  dependencies. Use ``pip_pre = true`` in a testenv or the ``--pre``
+  command-line option to restore the previous behavior.
+
+
 1.8.1.dev
 -----------
 

diff -r e89dddec56e6c5844aeb6cc50ea5e2956f53bca6 -r 
54204edbaa7e82c125a1034ba3e1f124ff0cbb1e doc/config.txt
--- a/doc/config.txt
+++ b/doc/config.txt
@@ -106,7 +106,22 @@
 
     **default**::
 
-        pip install --pre {opts} {packages}
+        pip install {opts} {packages}
+
+.. confval:: pip_pre=True|False(default)
+
+    .. versionadded:: 1.9
+
+    If ``True``, adds ``--pre`` to the ``opts`` passed to
+    :confval:`install_command`. If :confval:`install_command` uses pip, this
+    will cause it to install the latest available pre-release of any
+    dependencies without a specified version. If ``False`` (the default), pip
+    will only install final releases of unpinned dependencies.
+
+    Passing the ``--pre`` command-line option to tox will force this to
+    ``True`` for all testenvs.
+
+    Don't set this option if your :confval:`install_command` does not use pip.
 
 .. confval:: whitelist_externals=MULTI-LINE-LIST
 

diff -r e89dddec56e6c5844aeb6cc50ea5e2956f53bca6 -r 
54204edbaa7e82c125a1034ba3e1f124ff0cbb1e tests/test_config.py
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -106,6 +106,7 @@
         envconfig = config.envconfigs['python']
         assert envconfig.args_are_paths
         assert not envconfig.recreate
+        assert not envconfig.pip_pre
 
     def test_defaults_distshare(self, tmpdir, newconfig):
         config = newconfig([], "")
@@ -620,6 +621,24 @@
             'some_install', '--arg=%s/foo' % config.toxinidir, 'python',
             '{opts}', '{packages}']
 
+    def test_pip_pre(self, newconfig):
+        config = newconfig("""
+            [testenv]
+            pip_pre=true
+        """)
+        envconfig = config.envconfigs['python']
+        assert envconfig.pip_pre
+
+    def test_pip_pre_cmdline_override(self, newconfig):
+        config = newconfig(
+            ['--pre'],
+            """
+            [testenv]
+            pip_pre=false
+        """)
+        envconfig = config.envconfigs['python']
+        assert envconfig.pip_pre
+
     def test_downloadcache(self, newconfig, monkeypatch):
         monkeypatch.delenv("PIP_DOWNLOAD_CACHE", raising=False)
         config = newconfig("""

diff -r e89dddec56e6c5844aeb6cc50ea5e2956f53bca6 -r 
54204edbaa7e82c125a1034ba3e1f124ff0cbb1e tests/test_venv.py
--- a/tests/test_venv.py
+++ b/tests/test_venv.py
@@ -211,6 +211,25 @@
     assert "-i ABC" in args
     assert "dep3" in args
 
+def test_install_deps_pre(newmocksession):
+    mocksession = newmocksession([], """
+        [testenv]
+        pip_pre=true
+        deps=
+            dep1
+    """)
+    venv = mocksession.getenv('python')
+    venv.create()
+    l = mocksession._pcalls
+    assert len(l) == 1
+    l[:] = []
+
+    venv.install_deps()
+    assert len(l) == 1
+    args = " ".join(l[0].args)
+    assert "--pre " in args
+    assert "dep1" in args
+
 def test_installpkg_indexserver(newmocksession, tmpdir):
     mocksession = newmocksession([], """
         [tox]

diff -r e89dddec56e6c5844aeb6cc50ea5e2956f53bca6 -r 
54204edbaa7e82c125a1034ba3e1f124ff0cbb1e tox/_config.py
--- a/tox/_config.py
+++ b/tox/_config.py
@@ -105,6 +105,8 @@
         dest="indexurl", metavar="URL",
         help="set indexserver url (if URL is of form name=url set the "
         "url for the 'name' indexserver, specifically)")
+    parser.add_argument("--pre", action="store_true", dest="pre",
+        help="pass --pre option to install_command")
     parser.add_argument("-r", "--recreate", action="store_true",
         dest="recreate",
         help="force recreation of virtual environments")
@@ -381,15 +383,17 @@
             downloadcache = os.environ.get("PIP_DOWNLOAD_CACHE", downloadcache)
             vc.downloadcache = py.path.local(downloadcache)
 
-        pip_default_opts = ["--pre", "{opts}", "{packages}"]
         vc.install_command = reader.getargv(
             section,
             "install_command",
-            "pip install " + " ".join(pip_default_opts),
+            "pip install {opts} {packages}",
             )
         if '{packages}' not in vc.install_command:
             raise tox.exception.ConfigError(
              "'install_command' must contain '{packages}' substitution")
+        vc.pip_pre = config.option.pre or reader.getbool(
+            section, "pip_pre", False)
+
         return vc
 
     def _getenvdata(self, reader, toxsection):

diff -r e89dddec56e6c5844aeb6cc50ea5e2956f53bca6 -r 
54204edbaa7e82c125a1034ba3e1f124ff0cbb1e tox/_venv.py
--- a/tox/_venv.py
+++ b/tox/_venv.py
@@ -260,6 +260,8 @@
         if self.envconfig.downloadcache:
             self.envconfig.downloadcache.ensure(dir=1)
             l.append("--download-cache=%s" % self.envconfig.downloadcache)
+        if self.envconfig.pip_pre:
+            l.append("--pre")
         return l
 
     def run_install_command(self, packages, options=(),


https://bitbucket.org/hpk42/tox/commits/dc37c2432796/
Changeset:   dc37c2432796
User:        carljm
Date:        2014-10-07 16:44:37+00:00
Summary:     Expand help text for --pre option.
Affected #:  1 file

diff -r 54204edbaa7e82c125a1034ba3e1f124ff0cbb1e -r 
dc37c2432796b22e0dcee512f8baffb3a223b4e0 tox/_config.py
--- a/tox/_config.py
+++ b/tox/_config.py
@@ -106,7 +106,8 @@
         help="set indexserver url (if URL is of form name=url set the "
         "url for the 'name' indexserver, specifically)")
     parser.add_argument("--pre", action="store_true", dest="pre",
-        help="pass --pre option to install_command")
+        help="install pre-releases and development versions of dependencies. "
+             "This will pass the --pre option to install_command (pip by 
default).")
     parser.add_argument("-r", "--recreate", action="store_true",
         dest="recreate",
         help="force recreation of virtual environments")


https://bitbucket.org/hpk42/tox/commits/d4916d4cc83a/
Changeset:   d4916d4cc83a
User:        hpk42
Date:        2014-10-21 14:38:21+00:00
Summary:     Merged in carljm/tox (pull request #123)

Add --pre and testenv pip_pre options, no --pre by default.
Affected #:  6 files

diff -r 2c1f0d218f7c5c4f3994aa1b7f82aedb7680d3e9 -r 
d4916d4cc83a6abb7706383e9a249242fb4337fc CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,12 @@
+1.9.0.dev
+-----------
+
+- fix issue193: Remove ``--pre`` from the default ``install_command``; by
+  default tox will now only install final releases from PyPI for unpinned
+  dependencies. Use ``pip_pre = true`` in a testenv or the ``--pre``
+  command-line option to restore the previous behavior.
+
+
 1.8.1.dev
 -----------
 

diff -r 2c1f0d218f7c5c4f3994aa1b7f82aedb7680d3e9 -r 
d4916d4cc83a6abb7706383e9a249242fb4337fc doc/config.txt
--- a/doc/config.txt
+++ b/doc/config.txt
@@ -106,7 +106,22 @@
 
     **default**::
 
-        pip install --pre {opts} {packages}
+        pip install {opts} {packages}
+
+.. confval:: pip_pre=True|False(default)
+
+    .. versionadded:: 1.9
+
+    If ``True``, adds ``--pre`` to the ``opts`` passed to
+    :confval:`install_command`. If :confval:`install_command` uses pip, this
+    will cause it to install the latest available pre-release of any
+    dependencies without a specified version. If ``False`` (the default), pip
+    will only install final releases of unpinned dependencies.
+
+    Passing the ``--pre`` command-line option to tox will force this to
+    ``True`` for all testenvs.
+
+    Don't set this option if your :confval:`install_command` does not use pip.
 
 .. confval:: whitelist_externals=MULTI-LINE-LIST
 

diff -r 2c1f0d218f7c5c4f3994aa1b7f82aedb7680d3e9 -r 
d4916d4cc83a6abb7706383e9a249242fb4337fc tests/test_config.py
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -106,6 +106,7 @@
         envconfig = config.envconfigs['python']
         assert envconfig.args_are_paths
         assert not envconfig.recreate
+        assert not envconfig.pip_pre
 
     def test_defaults_distshare(self, tmpdir, newconfig):
         config = newconfig([], "")
@@ -620,6 +621,24 @@
             'some_install', '--arg=%s/foo' % config.toxinidir, 'python',
             '{opts}', '{packages}']
 
+    def test_pip_pre(self, newconfig):
+        config = newconfig("""
+            [testenv]
+            pip_pre=true
+        """)
+        envconfig = config.envconfigs['python']
+        assert envconfig.pip_pre
+
+    def test_pip_pre_cmdline_override(self, newconfig):
+        config = newconfig(
+            ['--pre'],
+            """
+            [testenv]
+            pip_pre=false
+        """)
+        envconfig = config.envconfigs['python']
+        assert envconfig.pip_pre
+
     def test_downloadcache(self, newconfig, monkeypatch):
         monkeypatch.delenv("PIP_DOWNLOAD_CACHE", raising=False)
         config = newconfig("""

diff -r 2c1f0d218f7c5c4f3994aa1b7f82aedb7680d3e9 -r 
d4916d4cc83a6abb7706383e9a249242fb4337fc tests/test_venv.py
--- a/tests/test_venv.py
+++ b/tests/test_venv.py
@@ -211,6 +211,25 @@
     assert "-i ABC" in args
     assert "dep3" in args
 
+def test_install_deps_pre(newmocksession):
+    mocksession = newmocksession([], """
+        [testenv]
+        pip_pre=true
+        deps=
+            dep1
+    """)
+    venv = mocksession.getenv('python')
+    venv.create()
+    l = mocksession._pcalls
+    assert len(l) == 1
+    l[:] = []
+
+    venv.install_deps()
+    assert len(l) == 1
+    args = " ".join(l[0].args)
+    assert "--pre " in args
+    assert "dep1" in args
+
 def test_installpkg_indexserver(newmocksession, tmpdir):
     mocksession = newmocksession([], """
         [tox]

diff -r 2c1f0d218f7c5c4f3994aa1b7f82aedb7680d3e9 -r 
d4916d4cc83a6abb7706383e9a249242fb4337fc tox/_config.py
--- a/tox/_config.py
+++ b/tox/_config.py
@@ -105,6 +105,9 @@
         dest="indexurl", metavar="URL",
         help="set indexserver url (if URL is of form name=url set the "
         "url for the 'name' indexserver, specifically)")
+    parser.add_argument("--pre", action="store_true", dest="pre",
+        help="install pre-releases and development versions of dependencies. "
+             "This will pass the --pre option to install_command (pip by 
default).")
     parser.add_argument("-r", "--recreate", action="store_true",
         dest="recreate",
         help="force recreation of virtual environments")
@@ -381,15 +384,17 @@
             downloadcache = os.environ.get("PIP_DOWNLOAD_CACHE", downloadcache)
             vc.downloadcache = py.path.local(downloadcache)
 
-        pip_default_opts = ["--pre", "{opts}", "{packages}"]
         vc.install_command = reader.getargv(
             section,
             "install_command",
-            "pip install " + " ".join(pip_default_opts),
+            "pip install {opts} {packages}",
             )
         if '{packages}' not in vc.install_command:
             raise tox.exception.ConfigError(
              "'install_command' must contain '{packages}' substitution")
+        vc.pip_pre = config.option.pre or reader.getbool(
+            section, "pip_pre", False)
+
         return vc
 
     def _getenvdata(self, reader, toxsection):

diff -r 2c1f0d218f7c5c4f3994aa1b7f82aedb7680d3e9 -r 
d4916d4cc83a6abb7706383e9a249242fb4337fc tox/_venv.py
--- a/tox/_venv.py
+++ b/tox/_venv.py
@@ -260,6 +260,8 @@
         if self.envconfig.downloadcache:
             self.envconfig.downloadcache.ensure(dir=1)
             l.append("--download-cache=%s" % self.envconfig.downloadcache)
+        if self.envconfig.pip_pre:
+            l.append("--pre")
         return l
 
     def run_install_command(self, packages, options=(),

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.
_______________________________________________
pytest-commit mailing list
pytest-commit@python.org
https://mail.python.org/mailman/listinfo/pytest-commit

Reply via email to