Example #1
0
    def test_cross_check_ticket_1355(self):
        # The bug in #1355 is triggered when a version string from either pkg_resources or import
        # is not parseable at all by normalized_version.

        res = cross_check({"foo": ("unparseable", "")}, [("foo", ("1.0", "", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("by pkg_resources could not be parsed", res[0])

        res = cross_check({"foo": ("1.0", "")}, [("foo", ("unparseable", "", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn(") could not be parsed", res[0])
    def test_cross_check_unparseable_versions(self):
        # The bug in #1355 is triggered when a version string from either pkg_resources or import
        # is not parseable at all by normalized_version.

        res = cross_check({"foo": ("unparseable", "")}, [("foo", ("1.0", "", None))])
        self.failUnlessEqual(res, [])

        res = cross_check({"foo": ("1.0", "")}, [("foo", ("unparseable", "", None))])
        self.failUnlessEqual(res, [])

        res = cross_check({"foo": ("unparseable", "")}, [("foo", ("unparseable", "", None))])
        self.failUnlessEqual(res, [])
Example #3
0
    def test_cross_check_ticket_1355(self):
        # The bug in #1355 is triggered when a version string from either pkg_resources or import
        # is not parseable at all by normalized_version.

        res = cross_check({"foo": ("unparseable", "")},
                          [("foo", ("1.0", "", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("by pkg_resources could not be parsed", res[0])

        res = cross_check({"foo": ("1.0", "")},
                          [("foo", ("unparseable", "", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn(") could not be parsed", res[0])
Example #4
0
    def test_cross_check_unparseable_versions(self):
        # The bug in #1355 is triggered when a version string from either pkg_resources or import
        # is not parseable at all by normalized_version.

        res = cross_check({"foo": ("unparseable", "")}, [("foo", ("1.0", "", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("by pkg_resources could not be parsed", res[0])
        self.failUnlessIn("due to IrrationalVersionError", res[0])

        res = cross_check({"foo": ("1.0", "")}, [("foo", ("unparseable", "", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn(") could not be parsed", res[0])
        self.failUnlessIn("due to IrrationalVersionError", res[0])

        # However, an error should not be triggered when the version strings are unparseable
        # but equal (#2499).
        res = cross_check({"foo": ("unparseable", "")}, [("foo", ("unparseable", "", None))])
        self.failUnlessEqual(res, [])
Example #5
0
    def test_cross_check(self):
        res = cross_check({}, [])
        self.failUnlessEqual(res, [])

        res = cross_check({}, [("allmydata-tahoe", ("1.0", "", "blah"))])
        self.failUnlessEqual(res, [])

        res = cross_check({"foo": ("unparseable", "")}, [])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("not found by import", res[0])

        res = cross_check({"argparse": ("unparseable", "")}, [])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({}, [("foo", ("unparseable", "", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("not found by pkg_resources", res[0])

        res = cross_check({"distribute": ("1.0", "/somewhere")}, [("setuptools", ("2.0", "/somewhere", "distribute"))])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({"distribute": ("1.0", "/somewhere")}, [("setuptools", ("2.0", "/somewhere", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("location mismatch", res[0])

        res = cross_check({"distribute": ("1.0", "/somewhere")}, [("setuptools", ("2.0", "/somewhere_different", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("location mismatch", res[0])

        res = cross_check({"zope.interface": ("1.0", "")}, [("zope.interface", ("unknown", "", None))])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({"foo": ("1.0", "")}, [("foo", ("unknown", "", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("could not find a version number", res[0])

        # When pkg_resources and import both find a package, there is only a warning if both
        # the version and the path fail to match.

        res = cross_check({"foo": ("1.0", "/somewhere")}, [("foo", ("2.0", "/somewhere", None))])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({"foo": ("1.0", "/somewhere")}, [("foo", ("1.0", "/somewhere_different", None))])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({"foo": ("1.0-r123", "/somewhere")}, [("foo", ("1.0.post123", "/somewhere_different", None))])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({"foo": ("1.0", "/somewhere")}, [("foo", ("2.0", "/somewhere_different", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("but version '2.0'", res[0])
Example #6
0
    def test_cross_check(self):
        res = cross_check({}, [])
        self.failUnlessEqual(res, [])

        res = cross_check({}, [("sqlite3", ("1.0", "", "blah"))])
        self.failUnlessEqual(res, [])

        res = cross_check({"foo": ("unparseable", "")}, [])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("not found by import", res[0])

        res = cross_check({"argparse": ("unparseable", "")}, [])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({}, [("foo", ("unparseable", "", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("not found by pkg_resources", res[0])

        res = cross_check({"distribute": ("1.0", "/somewhere")},
                          [("setuptools",
                            ("2.0", "/somewhere", "distribute"))])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({"distribute": ("1.0", "/somewhere")},
                          [("setuptools", ("2.0", "/somewhere", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("location mismatch", res[0])

        res = cross_check({"distribute": ("1.0", "/somewhere")},
                          [("setuptools",
                            ("2.0", "/somewhere_different", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("location mismatch", res[0])

        res = cross_check({"zope.interface": ("1.0", "")},
                          [("zope.interface", ("unknown", "", None))])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({"foo": ("1.0", "")},
                          [("foo", ("unknown", "", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("could not find a version number", res[0])

        # When pkg_resources and import both find a package, there is only a warning if both
        # the version and the path fail to match.

        res = cross_check({"foo": ("1.0", "/somewhere")},
                          [("foo", ("2.0", "/somewhere", None))])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({"foo": ("1.0", "/somewhere")},
                          [("foo", ("1.0", "/somewhere_different", None))])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({"foo": ("1.0-r123", "/somewhere")},
                          [("foo",
                            ("1.0.post123", "/somewhere_different", None))])
        self.failUnlessEqual(len(res), 0)

        res = cross_check({"foo": ("1.0", "/somewhere")},
                          [("foo", ("2.0", "/somewhere_different", None))])
        self.failUnlessEqual(len(res), 1)
        self.failUnlessIn("but version '2.0'", res[0])