def test_pip_downloads_nothing_when_no_requirements_are_given( pip: Pip, download_dir, current_platform ): pip.download_sources( requirements=RequirementSet(current_platform), target_directory=download_dir ) assert not list_files(download_dir)
def test_pip_wheel_does_not_build_wheels_if_requirements_are_empty( pip: Pip, wheels_dir, download_dir, current_platform ): pip.build_wheels( requirements=RequirementSet(current_platform), target_directory=wheels_dir, source_directories=download_dir, ) assert not list_files(wheels_dir)
def test_pip_downloads_sources_to_target_directory( pip: Pip, project_dir: str, current_platform: TargetPlatform, requirement_parser: RequirementParser, ): download_path = os.path.join(project_dir, "download") requirements = RequirementSet(current_platform) requirements.add(requirement_parser.parse("six")) pip.download_sources(requirements=requirements, target_directory=download_path) assert list_files(download_path)
def test_install_six_yields_non_empty_freeze_output(pip: Pip, project_dir, download_dir, current_platform, requirement_parser): lib_dir = os.path.join(project_dir, "lib") requirements = RequirementSet(current_platform) requirements.add(requirement_parser.parse("six")) pip.download_sources(requirements, download_dir) pip.install(requirements, source_directories=[download_dir], target_directory=lib_dir) assert pip.freeze([lib_dir])
def test_install_to_target_directory_does_not_install_to_default_directory( pip: Pip, project_dir, download_dir, current_platform, requirement_parser): requirements = RequirementSet(current_platform) requirements.add(requirement_parser.parse("six")) target_directory = os.path.join(project_dir, "target-directory") os.makedirs(target_directory) pip.download_sources(requirements, download_dir) assert not os.listdir(target_directory) pip.install( requirements, source_directories=[download_dir], target_directory=target_directory, ) assert os.listdir(target_directory)
def test_freeze_respects_additional_python_path( pip: Pip, project_dir: str, current_platform: TargetPlatform, requirement_parser: RequirementParser, ): prefix = os.path.join(project_dir, "custom-prefix") download_dir = os.path.join(project_dir, "download") requirements = RequirementSet(current_platform) requirements.add(requirement_parser.parse("six")) pip.download_sources(requirements, download_dir) pip.install(requirements, target_directory=prefix, source_directories=[download_dir]) freeze_without_six = pip.freeze([]) freeze_with_six = pip.freeze(python_path=[prefix]) assert len(freeze_without_six) < len(freeze_with_six)
def test_freeze_on_empty_environment_yields_empty_file(pip: Pip): frozen_requirements = pip.freeze([]) assert not frozen_requirements.strip()
def test_install_does_not_install_anything_with_empty_requirements( pip: Pip, project_dir, current_platform): target_directory = os.path.join(project_dir, "target_dir") os.makedirs(target_directory) pip.install(RequirementSet(current_platform), [], target_directory) assert not os.listdir(target_directory)