test_new_resolver.py 1.9 KB
Newer Older
1
import json
2

3 4 5 6 7 8 9 10 11 12
from tests.lib import create_basic_wheel_for_package


def assert_installed(script, **kwargs):
    ret = script.pip('list', '--format=json')
    installed = set(
        (val['name'], val['version'])
        for val in json.loads(ret.stdout)
    )
    assert set(kwargs.items()) <= installed
13

14 15

def test_new_resolver_can_install(script):
16
    create_basic_wheel_for_package(
17 18 19 20 21 22 23 24 25 26 27 28 29 30
        script,
        "simple",
        "0.1.0",
    )
    script.pip(
        "install", "--unstable-feature=resolver",
        "--no-cache-dir", "--no-index",
        "--find-links", script.scratch_path,
        "simple"
    )
    assert_installed(script, simple="0.1.0")


def test_new_resolver_can_install_with_version(script):
31
    create_basic_wheel_for_package(
32 33 34 35 36 37 38 39 40 41 42 43 44 45
        script,
        "simple",
        "0.1.0",
    )
    script.pip(
        "install", "--unstable-feature=resolver",
        "--no-cache-dir", "--no-index",
        "--find-links", script.scratch_path,
        "simple==0.1.0"
    )
    assert_installed(script, simple="0.1.0")


def test_new_resolver_picks_latest_version(script):
46
    create_basic_wheel_for_package(
47 48 49 50
        script,
        "simple",
        "0.1.0",
    )
51
    create_basic_wheel_for_package(
52 53 54 55 56 57 58 59 60 61 62 63
        script,
        "simple",
        "0.2.0",
    )
    script.pip(
        "install", "--unstable-feature=resolver",
        "--no-cache-dir", "--no-index",
        "--find-links", script.scratch_path,
        "simple"
    )
    assert_installed(script, simple="0.2.0")

64

65
def test_new_resolver_installs_dependencies(script):
66
    create_basic_wheel_for_package(
67 68 69 70 71
        script,
        "base",
        "0.1.0",
        depends=["dep"],
    )
72
    create_basic_wheel_for_package(
73 74 75 76 77 78 79 80 81 82 83
        script,
        "dep",
        "0.1.0",
    )
    script.pip(
        "install", "--unstable-feature=resolver",
        "--no-cache-dir", "--no-index",
        "--find-links", script.scratch_path,
        "base"
    )
    assert_installed(script, base="0.1.0", dep="0.1.0")