예제 #1
0
def test_download():
    # type: () -> None
    project1_sdist = create_sdist(name="project1",
                                  version="1.0.0",
                                  extras_require={"foo": ["project2"]})
    project2_wheel = build_wheel(
        name="project2",
        version="2.0.0",
        # This is the last version of setuptools compatible with Python 2.7.
        install_reqs=["setuptools==44.1.0"],
    )

    downloaded_by_target = defaultdict(list)
    for local_distribution in download(
            requirements=["{}[foo]".format(project1_sdist)],
            find_links=[os.path.dirname(project2_wheel)],
    ):
        distribution = pkginfo.get_metadata(local_distribution.path)
        downloaded_by_target[local_distribution.target].append(distribution)

    assert 1 == len(downloaded_by_target)

    target, distributions = downloaded_by_target.popitem()
    assert DistributionTarget.current() == target

    distributions_by_name = {
        distribution.name: distribution
        for distribution in distributions
    }
    assert 3 == len(distributions_by_name)

    def assert_dist(project_name, dist_type, version):
        dist = distributions_by_name[project_name]
        assert dist_type is type(dist)
        assert version == dist.version

    assert_dist("project1", pkginfo.SDist, "1.0.0")
    assert_dist("project2", pkginfo.Wheel, "2.0.0")
    assert_dist("setuptools", pkginfo.Wheel, "44.1.0")
예제 #2
0
def test_download():
    project1_sdist = create_sdist(name='project1',
                                  version='1.0.0',
                                  extras_require={'foo': ['project2']})
    project2_wheel = build_wheel(
        name='project2',
        version='2.0.0',
        # This is the last version of setuptools compatible with Python 2.7.
        install_reqs=['setuptools==44.1.0'])

    downloaded_by_target = defaultdict(list)
    for local_distribution in download(
            requirements=['{}[foo]'.format(project1_sdist)],
            find_links=[os.path.dirname(project2_wheel)]):
        distribution = pkginfo.get_metadata(local_distribution.path)
        downloaded_by_target[local_distribution.target].append(distribution)

    assert 1 == len(downloaded_by_target)

    target, distributions = downloaded_by_target.popitem()
    assert DistributionTarget.current() == target

    distributions_by_name = {
        distribution.name: distribution
        for distribution in distributions
    }
    assert 3 == len(distributions_by_name)

    def assert_dist(project_name, dist_type, version):
        dist = distributions_by_name[project_name]
        assert dist_type is type(dist)
        assert version == dist.version

    assert_dist('project1', pkginfo.SDist, '1.0.0')
    assert_dist('project2', pkginfo.Wheel, '2.0.0')
    assert_dist('setuptools', pkginfo.Wheel, '44.1.0')