summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorholger krekel <holger@merlinux.eu>2011-07-07 17:36:28 +0200
committerholger krekel <holger@merlinux.eu>2011-07-07 17:36:28 +0200
commit7eb7567c55863194a1d4d3d8bec87fa38e10e325 (patch)
tree2a431ad63b39027dacf2cce8b0e6e733127d259d
parent6a058c5eef2912834a41362107f4adb01e9d9e23 (diff)
downloadtox-7eb7567c55863194a1d4d3d8bec87fa38e10e325.tar.gz
except for initial creation always install sdist with "-U --no-deps".
-rw-r--r--CHANGELOG.txt4
-rw-r--r--tests/test_venv.py13
-rw-r--r--tox.ini1
-rw-r--r--tox/_venv.py7
4 files changed, 22 insertions, 3 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 8d0ea9b..5e1d29e 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -2,6 +2,10 @@
-----------------
- fix issue3 - fix example on frontpage
+- fixed/enhanced: except for initial install always call use "-U
+ --no-deps" for installing the sdist package to ensure that a package
+ gets upgraded even if its version number did not change. (reported on
+ TIP mailing list and IRC)
1.0
-----------------
diff --git a/tests/test_venv.py b/tests/test_venv.py
index 4d884ba..34b5e74 100644
--- a/tests/test_venv.py
+++ b/tests/test_venv.py
@@ -397,10 +397,21 @@ def test_setenv_added_to_pcall(mocksession, newconfig):
for e in os.environ:
assert e in env
-def test_install_sdist_upgrade_mode(newmocksession):
+def test_install_sdist_no_upgrade(newmocksession):
mocksession = newmocksession([], "")
venv = mocksession.getenv('python')
+ venv.just_created = True
venv.install_sdist("whatever")
l = mocksession._pcalls
assert len(l) == 1
assert '-U' not in l[0].args
+
+def test_install_sdist_upgrade(newmocksession):
+ mocksession = newmocksession([], "")
+ venv = mocksession.getenv('python')
+ assert not hasattr(venv, 'just_created')
+ venv.install_sdist("whatever")
+ l = mocksession._pcalls
+ assert len(l) == 1
+ assert '-U' in l[0].args
+ assert '--no-deps' in l[0].args
diff --git a/tox.ini b/tox.ini
index f2cbb7f..6489bd5 100644
--- a/tox.ini
+++ b/tox.ini
@@ -7,6 +7,7 @@ indexserver =
[testenv]
commands=py.test --junitxml={envlogdir}/junit-{envname}.xml []
deps=pytest
+ py
[testenv:py27-xdist]
commands=py.test -n5 --junitxml={envlogdir}/junit-{envname}.xml []
diff --git a/tox/_venv.py b/tox/_venv.py
index 6f539bb..fdabd38 100644
--- a/tox/_venv.py
+++ b/tox/_venv.py
@@ -175,10 +175,13 @@ class VirtualEnv(object):
finally:
old.chdir()
self._getliveconfig().writeconfig(self.path_config)
+ self.just_created = True
def install_sdist(self, sdistpath):
- #self._install(['-U', sdistpath])
- self._install([sdistpath])
+ if getattr(self, 'just_created', False):
+ self._install([sdistpath])
+ else:
+ self._install(['-U', '--no-deps', sdistpath])
def install_deps(self):
deps = self._getresolvedeps()