summaryrefslogtreecommitdiff
path: root/wheel/test/test_basic.py
diff options
context:
space:
mode:
Diffstat (limited to 'wheel/test/test_basic.py')
-rw-r--r--wheel/test/test_basic.py178
1 files changed, 0 insertions, 178 deletions
diff --git a/wheel/test/test_basic.py b/wheel/test/test_basic.py
deleted file mode 100644
index 6bd46b1..0000000
--- a/wheel/test/test_basic.py
+++ /dev/null
@@ -1,178 +0,0 @@
-"""
-Basic wheel tests.
-"""
-
-import os
-import pkg_resources
-import json
-import sys
-
-from pkg_resources import resource_filename
-
-import wheel.util
-import wheel.tool
-
-from wheel import egg2wheel
-from wheel.install import WheelFile
-from zipfile import ZipFile
-from shutil import rmtree
-
-test_distributions = ("complex-dist", "simple.dist", "headers.dist")
-
-def teardown_module():
- """Delete eggs/wheels created by tests."""
- base = pkg_resources.resource_filename('wheel.test', '')
- for dist in test_distributions:
- for subdir in ('build', 'dist'):
- try:
- rmtree(os.path.join(base, dist, subdir))
- except OSError:
- pass
-
-def setup_module():
- build_wheel()
- build_egg()
-
-def build_wheel():
- """Build wheels from test distributions."""
- for dist in test_distributions:
- pwd = os.path.abspath(os.curdir)
- distdir = pkg_resources.resource_filename('wheel.test', dist)
- os.chdir(distdir)
- try:
- sys.argv = ['', 'bdist_wheel']
- exec(compile(open('setup.py').read(), 'setup.py', 'exec'))
- finally:
- os.chdir(pwd)
-
-def build_egg():
- """Build eggs from test distributions."""
- for dist in test_distributions:
- pwd = os.path.abspath(os.curdir)
- distdir = pkg_resources.resource_filename('wheel.test', dist)
- os.chdir(distdir)
- try:
- sys.argv = ['', 'bdist_egg']
- exec(compile(open('setup.py').read(), 'setup.py', 'exec'))
- finally:
- os.chdir(pwd)
-
-def test_findable():
- """Make sure pkg_resources can find us."""
- assert pkg_resources.working_set.by_key['wheel'].version
-
-def test_egg_re():
- """Make sure egg_info_re matches."""
- egg_names_path = pkg_resources.resource_filename('wheel', 'eggnames.txt')
- with open(egg_names_path) as egg_names:
- for line in egg_names:
- line = line.strip()
- if not line:
- continue
- assert egg2wheel.egg_info_re.match(line), line
-
-def test_compatibility_tags():
- """Test compatibilty tags are working."""
- wf = WheelFile("package-1.0.0-cp32.cp33-noabi-noarch.whl")
- assert (list(wf.compatibility_tags) ==
- [('cp32', 'noabi', 'noarch'), ('cp33', 'noabi', 'noarch')])
- assert (wf.arity == 2)
-
- wf2 = WheelFile("package-1.0.0-1st-cp33-noabi-noarch.whl")
- wf2_info = wf2.parsed_filename.groupdict()
- assert wf2_info['build'] == '1st', wf2_info
-
-def test_convert_egg():
- base = pkg_resources.resource_filename('wheel.test', '')
- for dist in test_distributions:
- distdir = os.path.join(base, dist, 'dist')
- eggs = [e for e in os.listdir(distdir) if e.endswith('.egg')]
- wheel.tool.convert(eggs, distdir, verbose=False)
-
-def test_unpack():
- """
- Make sure 'wheel unpack' works.
- This also verifies the integrity of our testing wheel files.
- """
- for dist in test_distributions:
- distdir = pkg_resources.resource_filename('wheel.test',
- os.path.join(dist, 'dist'))
- for wheelfile in (w for w in os.listdir(distdir) if w.endswith('.whl')):
- wheel.tool.unpack(os.path.join(distdir, wheelfile), distdir)
-
-def test_no_scripts():
- """Make sure entry point scripts are not generated."""
- dist = "complex-dist"
- basedir = pkg_resources.resource_filename('wheel.test', dist)
- for (dirname, subdirs, filenames) in os.walk(basedir):
- for filename in filenames:
- if filename.endswith('.whl'):
- whl = ZipFile(os.path.join(dirname, filename))
- for entry in whl.infolist():
- assert not '.data/scripts/' in entry.filename
-
-def test_pydist():
- """Make sure pydist.json exists and validates against our schema."""
- # XXX this test may need manual cleanup of older wheels
-
- import jsonschema
-
- def open_json(filename):
- with open(filename, 'rb') as json_file:
- return json.loads(json_file.read().decode('utf-8'))
-
- pymeta_schema = open_json(resource_filename('wheel.test',
- 'pydist-schema.json'))
- valid = 0
- for dist in ("simple.dist", "complex-dist"):
- basedir = pkg_resources.resource_filename('wheel.test', dist)
- for (dirname, subdirs, filenames) in os.walk(basedir):
- for filename in filenames:
- if filename.endswith('.whl'):
- whl = ZipFile(os.path.join(dirname, filename))
- for entry in whl.infolist():
- if entry.filename.endswith('/metadata.json'):
- pymeta = json.loads(whl.read(entry).decode('utf-8'))
- jsonschema.validate(pymeta, pymeta_schema)
- valid += 1
- assert valid > 0, "No metadata.json found"
-
-def test_util():
- """Test functions in util.py."""
- for i in range(10):
- before = b'*' * i
- encoded = wheel.util.urlsafe_b64encode(before)
- assert not encoded.endswith(b'=')
- after = wheel.util.urlsafe_b64decode(encoded)
- assert before == after
-
-
-def test_pick_best():
- """Test the wheel ranking algorithm."""
- def get_tags(res):
- info = res[-1].parsed_filename.groupdict()
- return info['pyver'], info['abi'], info['plat']
-
- cand_tags = [('py27', 'noabi', 'noarch'), ('py26', 'noabi', 'noarch'),
- ('cp27', 'noabi', 'linux_i686'),
- ('cp26', 'noabi', 'linux_i686'),
- ('cp27', 'noabi', 'linux_x86_64'),
- ('cp26', 'noabi', 'linux_x86_64')]
- cand_wheels = [WheelFile('testpkg-1.0-%s-%s-%s.whl' % t)
- for t in cand_tags]
-
- supported = [('cp27', 'noabi', 'linux_i686'), ('py27', 'noabi', 'noarch')]
- supported2 = [('cp27', 'noabi', 'linux_i686'), ('py27', 'noabi', 'noarch'),
- ('cp26', 'noabi', 'linux_i686'), ('py26', 'noabi', 'noarch')]
- supported3 = [('cp26', 'noabi', 'linux_i686'), ('py26', 'noabi', 'noarch'),
- ('cp27', 'noabi', 'linux_i686'), ('py27', 'noabi', 'noarch')]
-
- for supp in (supported, supported2, supported3):
- context = lambda: list(supp)
- for wheel in cand_wheels:
- wheel.context = context
- best = max(cand_wheels)
- assert list(best.tags)[0] == supp[0]
-
- # assert_equal(
- # list(map(get_tags, pick_best(cand_wheels, supp, top=False))), supp)