From: Brian Warner Date: Tue, 16 Jun 2015 20:41:21 +0000 (-0700) Subject: add test-pip-install X-Git-Tag: allmydata-tahoe-1.10.2b1~19 X-Git-Url: https://git.rkrishnan.org/about.html?a=commitdiff_plain;h=d8e60f82a48f7ac33f72f118e71bf897c0466dd1;p=tahoe-lafs%2Ftahoe-lafs.git add test-pip-install --- diff --git a/Makefile b/Makefile index 97587cd4..9f6e2770 100644 --- a/Makefile +++ b/Makefile @@ -287,6 +287,9 @@ test-desert-island: $(MAKE) 2>&1 | tee make.out $(PYTHON) misc/build_helpers/check-build.py make.out no-downloads +.PHONY: test-pip-install +test-pip-install: + $(PYTHON) misc/build_helpers/test-pip-install.py # TARBALL GENERATION .PHONY: tarballs diff --git a/misc/build_helpers/test-pip-install.py b/misc/build_helpers/test-pip-install.py new file mode 100644 index 00000000..c24e02fa --- /dev/null +++ b/misc/build_helpers/test-pip-install.py @@ -0,0 +1,31 @@ + +import os, shutil +from subprocess import check_call + +# Install tahoe into a new virtualenv, move aside the source tree, run a test +# with the installed tahoe. This ensures that the installed code isn't +# depending upon anything from the source tree. Requires 'pip' and +# 'virtualenv' to be installed, and enough compilers/libraries (libffi-dev) +# to enable 'pip install'. + +# This runs a lot faster if you've cached wheels first. Edit ~/.pip/pip.conf +# to have [global] wheel-dir=find-links=/HOME/.pip/wheels, then run 'pip +# wheel .' from the tahoe tree. + +assert os.path.exists("Tahoe.home"), "Run this from the top of the source tree." +VE = "test-pip-install-virtualenv" + +print "creating virtualenv.." +if os.path.exists(VE): + shutil.rmtree(VE) +check_call(["virtualenv", VE]) +print "running 'pip install .' from virtualenv.." +check_call(["%s/bin/pip" % VE, "install", "."]) +try: + print "moving src/ out of the away" + os.rename("src", "src-disabled-by-test-pip-install") + print "running 'trial allmydata.test.test_web' from virtualenv.." + rc = check_call(["%s/bin/trial" % VE, "allmydata.test.test_web"]) +finally: + print "moving src/ back" + os.rename("src-disabled-by-test-pip-install", "src")