def test_install_from_infos_install_succes(self):
        old_install_dist = install._install_dist
        install._install_dist = MagicMock([])
        try:
            # assert that the distribution can be installed
            install_path = "my_install_path"
            to_install = [ToInstallDist(), ToInstallDist()]

            install.install_from_infos(install_path, install=to_install)
            for dist in to_install:
                install._install_dist.called_with(install_path)
        finally:
            install._install_dist = old_install_dist
    def test_install_from_infos_install_succes(self):
        old_install_dist = install._install_dist
        install._install_dist = MagicMock([])
        try:
            # assert that the distribution can be installed
            install_path = "my_install_path"
            to_install = [ToInstallDist(), ToInstallDist()]

            install.install_from_infos(install_path, install=to_install)
            for dist in to_install:
                install._install_dist.called_with(install_path)
        finally:
            install._install_dist = old_install_dist
    def test_install_custom_dir(self):
        dest = self.mkdtemp()

        project_dir, dist = self.create_dist(name="Spamlib", version="0.1", data_files={"spamd": "{scripts}/spamd"})

        dist.name = MagicMock(return_value="Spamlib")
        dist.version = MagicMock(return_value="0.1")
        dist.unpack = MagicMock(return_value=project_dir)

        self.write_file([project_dir, "setup.cfg"], ("[metadata]\n" "name = mypackage\n" "version = 0.1.0\n"))

        install.install_from_infos(dest, install=[dist])
        self.assertEqual(len(os.listdir(dest)), 1)
    def test_install_from_infos_remove_success(self):
        old_install_dists = install.install_dists
        install.install_dists = lambda x, y=None: None
        try:
            dists = []
            for i in range(2):
                dists.append(ToInstallDist(files=True))
            install.install_from_infos(remove=dists)

            # assert that the files have been removed
            for dist in dists:
                for f, md5, size in dist.list_installed_files():
                    self.assertFalse(os.path.exists(f))
        finally:
            install.install_dists = old_install_dists
    def test_install_from_infos_remove_success(self):
        old_install_dists = install.install_dists
        install.install_dists = lambda x, y=None: None
        try:
            dists = []
            for i in range(2):
                dists.append(ToInstallDist(files=True))
            install.install_from_infos(remove=dists)

            # assert that the files have been removed
            for dist in dists:
                for f, md5, size in dist.list_installed_files():
                    self.assertFalse(os.path.exists(f))
        finally:
            install.install_dists = old_install_dists
    def test_install_custom_dir(self):
        dest = self.mkdtemp()

        project_dir, dist = self.create_dist(
            name='Spamlib',
            version='0.1',
            data_files={'spamd': '{scripts}/spamd'})

        dist.name = MagicMock(return_value='Spamlib')
        dist.version = MagicMock(return_value='0.1')
        dist.unpack = MagicMock(return_value=project_dir)

        self.write_file([project_dir, 'setup.cfg'], ("[metadata]\n"
                                                     "name = mypackage\n"
                                                     "version = 0.1.0\n"))

        install.install_from_infos(dest, install=[dist])
        self.assertEqual(len(os.listdir(dest)), 1)