import pkg_resources
def test():
- # We put a fake "pycryptopp-0.5.24.egg" package and a fake
- # "pycryptopp-9.9.99.tar.gz" into a directory, but the latter is
- # booby-trapped so it will raise an exception when you try to build
- # it.
-
- # Then we run "python setup.py test -s
- # buildtest.test_with_fake_dist", which imports pycryptopp
- # and passes if pycryptopp.__version__ == '0.5.24'.
-
- # (If building succeeded -- meaning that you didn't try to build the
- # booby-trapped 9.9.99 -- but pycryptopp.__version__ != '0.5.24' then
- # that means a different version of pycryptopp was already installed
- # so neither of the two fake pycryptopp packages were needed. In that
- # case this test should be treated as a "skip" -- the functionality
- # under test can't be exercised on the current system.)
-
+ # We put a "fakedependency-1.0.0.egg" package and a
+ # "fakedependency-9.9.99.tar.gz" into a directory, but the latter is
+ # booby-trapped so it will raise an exception when you try to build it.
+ #
+ # Then we run
+ #
+ # python --fakedependency setup.py -v test -s buildtest.test_with_fake_dist
+ #
+ # which imports fakedependency and passes if fakedependency.__version__ == '1.0.0'.
+ #
# The goal is to turn red if the build system tries to build the
# source dist when it could have used the binary dist.
-
- # (Note that for this test to make sense, tahoe-lafs needs to be
- # asking for a version of pycryptopp which can be satisfied by either
- # 0.5.24 or 0.5.25. At the time of this writing it requires >= 0.5.20
- # on x86 and >= 0.5.14 on other architectures.)
+ #
+ # Note that for this test to make sense, Tahoe-LAFS needs to be asking
+ # for a version of fakedependency which can be satisfied by 1.0.0.
+ # The --fakedependency option to setup.py arranges that.
fake_distdir = 'tahoe-deps'
- fake_distname = "pycryptopp"
+ fake_distname = "fakedependency"
fake_sdistversion = "9.9.99"
- fake_bdistversion = "0.5.24"
- sdist_setup = "raise Exception('Aha I caught you trying to build me. I am a fake pycryptopp 9.9.99 sdist and you should be satisfied with a bdist.')"
+ fake_bdistversion = "1.0.0"
+ sdist_setup = "raise Exception('Aha I caught you trying to build me. I am a fakedependency 9.9.99 sdist and you should be satisfied with a bdist.')"
testsuite = "buildtest.test_build_with_fake_dist"
bdist_egg_name = os.path.join(dist_dirname, '%s-%s-py%s.%s-%s.egg' % (fake_distname, fake_bdistversion, platform.python_version_tuple()[0], platform.python_version_tuple()[1], pkg_resources.get_supported_platform()))
try:
bdist_egg = zipfile.ZipFile(bdist_egg_name, 'w')
- bdist_egg.writestr('pycryptopp/__init__.py', '__version__ = "%s"\n' % (fake_bdistversion,))
+ bdist_egg.writestr('fakedependency/__init__.py', '__version__ = "%s"\n' % (fake_bdistversion,))
bdist_egg.close()
sdist_name = os.path.join(dist_dirname, '%s-%s.tar' % (fake_distname, fake_sdistversion))
sdist = tarfile.open(sdist_name, 'w:gz')
- sdist.errorlevel =2
+ sdist.errorlevel = 2
tarinfo = tarfile.TarInfo('setup.py')
- tarinfo.errorlevel =2
+ tarinfo.errorlevel = 2
tarinfo.size = len(sdist_setup)
sdist.addfile(tarinfo, StringIO.StringIO(sdist_setup))
sdist.close()
- sys.exit(subprocess.call([sys.executable, "setup.py", "-v", "test", "-s", testsuite], env=os.environ))
+ sys.exit(subprocess.call([sys.executable, "setup.py", "--fakedependency", "-v", "test", "-s", testsuite],
+ env=os.environ))
finally:
os.remove(bdist_egg_name)
os.remove(sdist_name)
cleanup()
def cleanup():
- for path, subdnames, fnames in os.walk('.'):
- for fdname in subdnames + fnames:
- if fdname.startswith('pycryptopp-0.5.24'):
- shutil.rmtree(os.path.join(path, fdname))
+ shutil.rmtree('build')
+ shutil.rmtree('support')
+ shutil.rmtree(os.path.join('src', 'allmydata_tahoe.egg-info'))
+ os.remove(os.path.join('bin', 'tahoe'))
+ os.remove(os.path.join('bin', 'tahoe.pyscript'))
if __name__ == '__main__':
test()