def test_clone_upgrade_synthetic(self): """ test clone upgrade with on-the-fly generated chroots """ supported = distro_info.UbuntuDistroInfo().supported() for meta in [ "ubuntu-standard", "ubuntu-desktop", "kubuntu-desktop", "xubuntu-desktop" ]: logging.info("testing %s" % meta) old = self._create_fake_upgradable_root(supported[-2], meta=meta) self.addCleanup(shutil.rmtree, old) # create statefile based on the old data with tarfile.open("lala.tar.gz", "w:gz") as state: state.add(os.path.join(old, "var", "lib", "apt-clone", "installed.pkgs"), arcname="./var/lib/apt-clone/installed.pkgs") # create new fake environment and try to upgrade new = self._create_fake_upgradable_root(supported[-1], meta=meta) self.addCleanup(shutil.rmtree, new) cache = apt.Cache(rootdir=new) clone = AptClone() clone._restore_package_selection_in_cache("lala.tar.gz", cache, protect_installed=True) self.assertFalse(cache[meta].marked_delete, "package %s marked for removal" % meta) self.assertTrue(len(cache.get_changes()) > 0)
def test_clone_upgrade_regression(self): """ regression test against known installs """ new = self._create_fake_upgradable_root("natty", meta="ubuntu-desktop") self.addCleanup(shutil.rmtree, new) cache = apt.Cache(rootdir=new) clone = AptClone() clone._restore_package_selection_in_cache( "./data/regression/apt-clone-state-ubuntu.tar.gz", cache) self.assertTrue(len(cache.get_changes()) > 0)
def test_clone_upgrade_synthetic(self): """ test clone upgrade with on-the-fly generated chroots """ supported = distro_info.UbuntuDistroInfo().supported() for meta in ["ubuntu-standard", "ubuntu-desktop", "kubuntu-desktop", "xubuntu-desktop"]: logging.info("testing %s" % meta) old = self._create_fake_upgradable_root(supported[-2], meta=meta) self.addCleanup(shutil.rmtree, old) # create statefile based on the old data with tarfile.open("lala.tar.gz", "w:gz") as state: state.add( os.path.join(old, "var", "lib", "apt-clone", "installed.pkgs"), arcname = "./var/lib/apt-clone/installed.pkgs") # create new fake environment and try to upgrade new = self._create_fake_upgradable_root(supported[-1], meta=meta) self.addCleanup(shutil.rmtree, new) cache = apt.Cache(rootdir=new) clone = AptClone() clone._restore_package_selection_in_cache("lala.tar.gz", cache, protect_installed=True) self.assertFalse(cache[meta].marked_delete, "package %s marked for removal" % meta) self.assertTrue(len(cache.get_changes()) > 0)