Ejemplo n.º 1
0
    def test_report_import_error(self):
        """
        get_package_versions_and_locations reports a dependency if a dependency
        cannot be imported.
        """
        # Make sure we don't leave the system in a bad state.
        self.addCleanup(lambda foolscap=sys.modules["foolscap"]: setitem(
            sys.modules,
            "foolscap",
            foolscap,
        ), )
        # Make it look like Foolscap isn't installed.
        sys.modules["foolscap"] = None
        vers_and_locs, errors = get_package_versions_and_locations()

        foolscap_stuffs = [
            stuff for (pkg, stuff) in vers_and_locs if pkg == 'foolscap'
        ]
        self.failUnlessEqual(len(foolscap_stuffs), 1)
        self.failUnless(
            [e for e in errors if "\'foolscap\' could not be imported" in e])
Ejemplo n.º 2
0
    def test_packages_from_pkg_resources(self):
        if hasattr(sys, 'frozen'):
            raise unittest.SkipTest(
                "This test doesn't apply to frozen builds.")

        class MockPackage(object):
            def __init__(self, project_name, version, location):
                self.project_name = project_name
                self.version = version
                self.location = location

        def call_pkg_resources_require(*args):
            return [MockPackage("Foo", "1.0", "/path")]

        self.patch(pkg_resources, 'require', call_pkg_resources_require)

        (packages, errors) = get_package_versions_and_locations()
        self.failUnlessIn(
            ("foo", ("1.0", "/path", "according to pkg_resources")), packages)
        self.failIfEqual(errors, [])
        self.failUnlessEqual(
            [e for e in errors if "was not found by pkg_resources" not in e],
            [])