def test_constraints_without_requirement_will_not_show_up_in_generated_requirement_file( tmpdir, project_dir, current_platform, requirement_parser, logger: Logger): requirements_txt = tmpdir.join("requirements.txt") constraints_txt = tmpdir.join("constraints.txt") with open(requirements_txt, "w") as f: print("test-requirement", file=f) print("-c " + str(constraints_txt), file=f) with open(constraints_txt, "w") as f: print("test-constraint == 1.0", file=f) original_requirements_file = RequirementsFile(str(requirements_txt), project_dir, requirement_parser, logger) original_requirements_file.process() requirement_set = RequirementSet.from_file(original_requirements_file, current_platform, requirement_parser, logger) new_requirements_file = requirement_set.to_file(project_dir, current_platform, requirement_parser, logger) assert "test-constraint" not in new_requirements_file.read()
def test_requirement_set_respects_constraints_when_reading_from_requirement_file( tmpdir, project_dir, current_platform, requirement_parser, logger: Logger): requirements_txt = tmpdir.join("requirements.txt") constraints_txt = tmpdir.join("constraints.txt") with open(requirements_txt, "w") as f: print("test-requirement", file=f) print("-c " + str(constraints_txt), file=f) with open(constraints_txt, "w") as f: print("test-requirement <= 1.0", file=f) original_requirements_file = RequirementsFile(str(requirements_txt), project_dir, requirement_parser, logger) original_requirements_file.process() requirement_set = RequirementSet.from_file(original_requirements_file, current_platform, requirement_parser, logger) new_requirements_file = requirement_set.to_file(project_dir, current_platform, requirement_parser, logger) assert "test-requirement <= 1.0" in new_requirements_file.read()
def add_file(self, file_path: str) -> None: with tempfile.TemporaryDirectory() as project_directory: requirements_file = RequirementsFile(file_path, project_directory) requirements_file.process() added_requirements = RequirementSet.from_file( requirements_file, self.platform ) self.requirement_set += added_requirements
def test_from_file_handles_comment_lines(project_dir, current_platform, requirement_parser, logger: Logger): requirements_file = RequirementsFile.from_lines(["pypi2nix", "# comment"], project_dir, requirement_parser, logger) requirements_set = RequirementSet.from_file(requirements_file, current_platform, requirement_parser, logger) assert len(requirements_set) == 1
def add_file(self, file_path: str) -> None: requirements_file = RequirementsFile(file_path, self._project_directory, self.requirement_parser, self.logger) requirements_file.process() self._sources.update(requirements_file.sources()) added_requirements = RequirementSet.from_file(requirements_file, self.platform, self.requirement_parser, self.logger) self.requirement_set += added_requirements
def test_include_lines_are_respected_when_generating_from_file( tmpdir, project_dir, current_platform): requirements_txt = tmpdir.join("requirements.txt") included_requirements_txt = tmpdir.join("included_requirements.txt") with open(requirements_txt, "w") as f: print("-r " + str(included_requirements_txt), file=f) with open(included_requirements_txt, "w") as f: print("test-requirement", file=f) requirements_file = RequirementsFile(str(requirements_txt), project_dir) requirements_file.process() requirement_set = RequirementSet.from_file(requirements_file, current_platform) assert "test-requirement" in requirement_set
def test_that_extras_are_preserved_when_converting_to_and_from_a_file( requirement_parser: RequirementParser, requirement_set: RequirementSet, current_platform: TargetPlatform, project_dir: str, logger: Logger, ): requirement_set.add(requirement_parser.parse("req[extra1]")) requirements_file = requirement_set.to_file(project_dir, current_platform, requirement_parser, logger) new_requirements_set = RequirementSet.from_file(requirements_file, current_platform, requirement_parser, logger) requirement = new_requirements_set["req"] assert requirement.extras() == {"extra1"}
def add_file(self, file_path: str) -> None: requirements_file = RequirementsFile(file_path, self._project_directory, self.requirement_parser, self.logger) requirements_file.process() self._sources.update(requirements_file.sources()) added_requirements = RequirementSet.from_file(requirements_file, self.platform, self.requirement_parser, self.logger) transitive_requirements = set() for requirement in added_requirements: transitive_requirements.update( self._base_dependency_graph.get_all_build_dependency_names( requirement)) for line in transitive_requirements: self._add_line_without_dependency_check(line) self.requirement_set += added_requirements
def test_from_file_handles_empty_lines(project_dir, current_platform): requirements_file = RequirementsFile.from_lines(["pypi2nix", ""], project_dir) requirements_set = RequirementSet.from_file(requirements_file, current_platform) assert len(requirements_set) == 1