Exemple #1
0
async def test_rotten_package():
    downloader = PypiPackageInfoDownloader()
    r = Requirement("requests", "1.1.0", False)
    version, release_date = await downloader.version_and_release_date(r)

    r2 = Requirement("requests", "", False)
    version2, release_date2 = await downloader.version_and_release_date(r2)

    assert version != version2
    assert release_date != release_date2
Exemple #2
0
async def test_fresh_package():
    downloader = PypiPackageInfoDownloader()
    r = Requirement("requests", "", False)
    version, release_date = await downloader.version_and_release_date(r)

    r2 = Requirement("requests", str(version), False)
    version2, release_date2 = await downloader.version_and_release_date(r2)

    assert version == version2
    assert release_date == release_date2
    def test_doesnt_go_infinite_loop(self):
        expected_requirements = [
            Requirement("do-not", "0.0.1", False),
            Requirement("go-infinite", "0.0.2", False),
        ]

        actual_requirements = RequirementsParser(
            "tests/utils/fixtures/requirements-infinite.txt"
        ).parse()

        self.assertListEqual(actual_requirements, expected_requirements)
    def test_parses_file_correctly(self):
        expected_requirements = [
            Requirement("test", "1.0.0", False),
            Requirement("recursed-requirement", "0.0.1", False),
            Requirement("ignored-requirement", "0.1.0", True),
            Requirement("ignored-requirement2", "0.2.0", True),
            Requirement("ignored-requirement3", "0.3.0", True),
        ]

        actual_requirements = RequirementsParser("tests/utils/fixtures/requirements.txt").parse()

        self.assertListEqual(actual_requirements, expected_requirements)
    def _parse_file(self, file: FileIO) -> Tuple[List[Requirement], List[str]]:
        requirements: List[Requirement] = []
        to_recurse: List[str] = []

        for line in file.readlines():
            try:
                requirements.append(Requirement.from_line(line))
            except NotFrozenRequirement:
                if line.startswith("-r "):
                    to_recurse.append(remove_comments(line))
                else:
                    continue
        return requirements, to_recurse
Exemple #6
0
    async def _handle_single_requirement(self,
                                         requirement: Requirement) -> bool:
        current_version, current_release_date = await self.pypi.version_and_release_date(
            requirement)
        latest_version, latest_release_date = await self.pypi.version_and_release_date(
            Requirement(requirement.package))

        package_info = PackageInfo(
            name=requirement.package,
            latest_version=latest_version,
            latest_release_date=latest_release_date,
            current_version=current_version,
            current_release_date=current_release_date,
        )

        is_outdated, message = self.__handle_single_requirement(
            package_info, requirement)
        logger.error(message)
        return is_outdated
Exemple #7
0
 def test_creates_requirement_object_from_clean_line(self):
     line = "test==1.0.0"
     requirement = Requirement.from_line(line)
     self.assertEqual(requirement.package, "test")
     self.assertEqual(requirement.version, "1.0.0")
     self.assertFalse(requirement.ignore)
Exemple #8
0
 def test_raises_exception_on_invalid_line(self):
     invalid_line = "this is an invalid requirement line"
     with self.assertRaises(NotFrozenRequirement):
         Requirement.from_line(invalid_line)
Exemple #9
0
 def test_checks_for_norot_comment_with_space(self):
     line = "test4==4.0.0  # no rot"
     requirement = Requirement.from_line(line)
     self.assertEqual(requirement.package, "test4")
     self.assertEqual(requirement.version, "4.0.0")
     self.assertTrue(requirement.ignore)
Exemple #10
0
 def test_checks_for_norot_comment(self):
     line = "test3==3.0.0  # norot"
     requirement = Requirement.from_line(line)
     self.assertEqual(requirement.package, "test3")
     self.assertEqual(requirement.version, "3.0.0")
     self.assertTrue(requirement.ignore)
Exemple #11
0
 def test_strips_comments_from_line(self):
     line = "test2==2.0.0  # cool kids write tests"
     requirement = Requirement.from_line(line)
     self.assertEqual(requirement.package, "test2")
     self.assertEqual(requirement.version, "2.0.0")
     self.assertFalse(requirement.ignore)