diff options
Diffstat (limited to 'wheel/test/__init__.py')
-rw-r--r-- | wheel/test/__init__.py | 125 |
1 files changed, 1 insertions, 124 deletions
diff --git a/wheel/test/__init__.py b/wheel/test/__init__.py index 3ee5657..4287ca8 100644 --- a/wheel/test/__init__.py +++ b/wheel/test/__init__.py @@ -1,124 +1 @@ -import os -import distutils -import pkg_resources -import json -import sys - -from pkg_resources import resource_filename - -from nose.tools import assert_true, assert_false, assert_equal, raises - -import wheel.util -from wheel import egg2wheel -from wheel.install import WheelFile -from zipfile import ZipFile - - -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 = open(pkg_resources.resource_filename('wheel', 'eggnames.txt')) - 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_equal(list(wf.compatibility_tags), - [('cp32', 'noabi', 'noarch'), ('cp33', 'noabi', 'noarch')]) - assert_equal(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_bdist_wheel(): - """Make sure bdist_wheel finish without errors.""" - for dist in ("simple.dist", "complex-dist"): - pwd = os.curdir - simpledist = pkg_resources.resource_filename('wheel.test', dist) - os.chdir(simpledist) - try: - sys.argv = ['', 'bdist_wheel'] - exec(compile(open('setup.py').read(), 'setup.py', 'exec')) - finally: - os.chdir(pwd) - -def test_pymeta(): - """Make sure pymeta.json exists and validates against our schema.""" - # XXX this test may need manual cleanup of older wheels - - import jsonschema - - def open_json(filename): - return json.loads(open(filename, 'rb').read().decode('utf-8')) - - pymeta_schema = open_json(resource_filename('wheel.test', - 'pymeta-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('/pymeta.json'): - pymeta = json.loads(whl.read(entry).decode('utf-8')) - jsonschema.validate(pymeta, pymeta_schema) - valid += 1 - assert valid > 0, "No pymeta.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_equal(list(best.tags)[0], supp[0]) - - # assert_equal( - # list(map(get_tags, pick_best(cand_wheels, supp, top=False))), supp) - - -if __name__ == '__main__': - import nose - nose.main() +#
\ No newline at end of file |