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, [])
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, [])
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])
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])