1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
import zipfile
import pytest
def _make_wheel(filename, metadata_version=None):
from pkginfo.wheel import Wheel
if metadata_version is not None:
return Wheel(filename, metadata_version=metadata_version)
else:
return Wheel(filename)
def _checkSample(wheel, filename):
assert(wheel.filename == filename)
assert(wheel.name == 'mypackage')
assert(wheel.version == '0.1')
assert(wheel.keywords == None)
def _checkClassifiers(wheel):
assert(
list(wheel.classifiers) == [
'Development Status :: 4 - Beta',
'Environment :: Console (Text Based)',
]
)
assert(list(wheel.supported_platforms) == [])
def test_wheel_ctor_w_bogus_filename(examples_dir):
filename = str(examples_dir / 'nonesuch-0.1-any.whl')
with pytest.raises(ValueError):
_make_wheel(filename)
def test_wheel_ctor_w_non_wheel(archive):
filename = str(archive)
with pytest.raises(ValueError):
_make_wheel(filename)
def test_wheel_ctor_wo_dist_info(examples_dir):
filename = str(examples_dir / 'nodistinfo-0.1-any.whl')
with pytest.raises(ValueError):
_make_wheel(filename)
def test_wheel_ctor_w_valid_wheel(test_wheel):
filename = str(test_wheel)
wheel = _make_wheel(filename)
assert(wheel.metadata_version == '2.0')
_checkSample(wheel, filename)
_checkClassifiers(wheel)
def test_wheel_ctor_w_valid_wheel_and_metadata_version(test_wheel):
filename = str(test_wheel)
wheel = _make_wheel(filename, metadata_version='1.1')
assert(wheel.metadata_version == '1.1')
_checkSample(wheel, filename)
_checkClassifiers(wheel)
def test_wheel_ctor_w_valid_wheel_w_description_header(examples_dir):
filename = str(examples_dir / 'distlib-0.3.1-py2.py3-none-any.whl')
wheel = _make_wheel(filename, metadata_version='1.1')
assert(wheel.metadata_version == '1.1')
assert(wheel.description)
def test_wheel_ctor_w_valid_wheel_w_description_body(examples_dir):
filename = str(examples_dir / 'testlp1974172-0.0.0-py3-none-any.whl')
wheel = _make_wheel(filename, metadata_version='2.1')
assert(wheel.metadata_version == '2.1')
assert(
"https://bugs.launchpad.net/pkginfo/+bug/1885458" in
wheel.description
)
def test_wheel_ctor_w_installed_wheel(examples_dir):
filename = str(examples_dir / 'mypackage-0.1.dist-info')
wheel = _make_wheel(filename)
assert(wheel.metadata_version == '2.0')
_checkSample(wheel, filename)
_checkClassifiers(wheel)
def test_wheel_ctor_w_valid_installed_wheel(temp_dir, test_wheel):
filename = str(test_wheel)
with zipfile.ZipFile(filename) as zipf:
zipf.extractall(temp_dir)
installed_filename = temp_dir / 'mypackage-0.1.dist-info'
wheel = _make_wheel(str(installed_filename))
assert(wheel.metadata_version == '2.0')
_checkSample(wheel, str(installed_filename))
_checkClassifiers(wheel)
|