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")
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')