File: test_wheel.py

package info (click to toggle)
python-pkginfo 1.12.1.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 980 kB
  • sloc: python: 2,142; makefile: 84; sh: 14
file content (104 lines) | stat: -rw-r--r-- 2,970 bytes parent folder | download
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)