Example #1
0
    def test_syu_aur_repo_flags(self):
        """
        test --aur and --repo flags with sysupgrade
        """

        self.downgrade_repo1_pkg()
        self.downgrade_aur1_pkg()

        pikaur('-Su --noconfirm --repo')
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.repo_pkg_name].version,
            self.repo_old_version
        )
        self.assertEqual(
            PackageDB.get_local_dict()[self.aur_pkg_name].version,
            self.aur_old_version
        )

        self.downgrade_repo1_pkg()

        pikaur('-Su --noconfirm --aur')
        self.assertEqual(
            PackageDB.get_local_dict()[self.repo_pkg_name].version,
            self.repo_old_version
        )
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.aur_pkg_name].version,
            self.aur_old_version
        )
Example #2
0
    def test_syu(self):
        """
        test upgrade of repo and AUR packages
        """

        self.downgrade_repo1_pkg()
        self.downgrade_aur1_pkg()

        query_result = pikaur('-Quq --aur').stdout
        self.assertEqual(query_result.splitlines(), [self.aur_pkg_name])

        query_result = pikaur('-Quq --repo').stdout
        self.assertEqual(query_result.splitlines(), [self.repo_pkg_name])

        query_result = pikaur('-Qu').stdout
        self.assertEqual(len(query_result.splitlines()), 2)
        self.assertIn(self.aur_pkg_name, query_result)
        self.assertIn(self.repo_pkg_name, query_result)

        # and finally test the sysupgrade itself
        pikaur('-Su --noconfirm')
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.repo_pkg_name].version,
            self.repo_old_version)
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.aur_pkg_name].version,
            self.aur_old_version)
Example #3
0
 def downgrade_aur_pkg(
         self, aur_pkg_name: str, fake_makepkg=False, count=1
 ) -> str:
     # and test -P and -G during downgrading :-)
     old_version = (
         PackageDB.get_local_dict()[aur_pkg_name].version
         if aur_pkg_name in PackageDB.get_local_pkgnames()
         else None
     )
     self.remove_if_installed(aur_pkg_name)
     spawn(f'rm -fr ./{aur_pkg_name}')
     pikaur(f'-G {aur_pkg_name}')
     prev_commit = spawn(
         f'git -C ./{aur_pkg_name} log --format=%h'
     ).stdout_text.splitlines()[count]
     spawn(f'git -C ./{aur_pkg_name} checkout {prev_commit}')
     pikaur(
         f'-P -i --noconfirm ./{aur_pkg_name}/PKGBUILD',
         fake_makepkg=fake_makepkg
     )
     self.assertInstalled(aur_pkg_name)
     new_version = PackageDB.get_local_dict()[aur_pkg_name].version
     self.assertNotEqual(
         old_version, new_version,
         f"After downgrading version of {aur_pkg_name} still stays on {old_version}"
     )
     return new_version
Example #4
0
    def test_explicit_pkgs_not_becoming_deps(self):
        """
        #123 AUR dep which was previously explicitly installed gets
        incorrectly marked as a dependency
        """
        from pikaur.pacman import PackageDB

        aur_pkg_name = 'nqp'
        explicitly_installed_dep_name = 'moarvm'

        self.remove_if_installed(aur_pkg_name, explicitly_installed_dep_name)
        explicitly_installed_dep_old_version = self.downgrade_aur_pkg(
            explicitly_installed_dep_name, fake_makepkg=True)
        self.assertInstalled(explicitly_installed_dep_name)
        self.assertEqual(
            PackageDB.get_local_dict()[explicitly_installed_dep_name].reason,
            0)

        fake_pikaur(f'-S {aur_pkg_name}')
        self.assertInstalled(aur_pkg_name)
        self.assertInstalled(explicitly_installed_dep_name)
        self.assertNotEqual(
            PackageDB.get_local_dict()[explicitly_installed_dep_name].version,
            explicitly_installed_dep_old_version)
        self.assertEqual(
            PackageDB.get_local_dict()[explicitly_installed_dep_name].reason,
            0)
Example #5
0
 def downgrade_repo_pkg(self, repo_pkg_name: str) -> str:
     self.remove_if_installed(repo_pkg_name)
     spawn(f'rm -fr ./{repo_pkg_name}')
     pikaur(f'-G {repo_pkg_name}')
     some_older_commit = spawn(f'git -C ./{repo_pkg_name} log --format=%h'
                               ).stdout_text.splitlines()[10]
     spawn(f'git -C ./{repo_pkg_name} checkout {some_older_commit}')
     pikaur(f'-P -i --noconfirm --mflags=--skippgpcheck '
            f'./{repo_pkg_name}/trunk/PKGBUILD')
     self.assertInstalled(repo_pkg_name)
     return PackageDB.get_local_dict()[repo_pkg_name].version
Example #6
0
    def test_syu(self):
        """
        test upgrade of repo and AUR packages
        """

        self.downgrade_repo1_pkg()
        self.downgrade_aur1_pkg()

        self.assertEqual(self.upgradeable_aur_pkgs_list, [self.aur_pkg_name])
        self.assertEqual(self.upgradeable_repo_pkgs_list, [self.repo_pkg_name])
        self.assertEqual(list(sorted(self.upgradeable_pkgs_list)),
                         list(sorted([self.repo_pkg_name, self.aur_pkg_name])))

        # and finally test the sysupgrade itself
        pikaur('-Su --noconfirm')
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.repo_pkg_name].version,
            self.repo_old_version)
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.aur_pkg_name].version,
            self.aur_old_version)
Example #7
0
 def downgrade_aur_pkg(self, aur_pkg_name: str, fake_makepkg=False) -> str:
     # and test -P and -G during downgrading :-)
     self.remove_if_installed(aur_pkg_name)
     spawn(f'rm -fr ./{aur_pkg_name}')
     pikaur(f'-G {aur_pkg_name}')
     prev_commit = spawn(  # type: ignore
         f'git -C ./{aur_pkg_name} log --format=%h').stdout_text.splitlines(
         )[1]
     spawn(f'git -C ./{aur_pkg_name} checkout {prev_commit}')
     pikaur(f'-P -i --noconfirm ./{aur_pkg_name}/PKGBUILD',
            fake_makepkg=fake_makepkg)
     self.assertInstalled(aur_pkg_name)
     return PackageDB.get_local_dict()[aur_pkg_name].version
Example #8
0
    def test_devel_upgrade(self):
        """
        test upgrade of AUR dev package
        """

        self.downgrade_dev_pkg()

        self.assertEqual(self.upgradeable_pkgs_list, [])

        # and finally test the sysupgrade itself
        pikaur('-Su --noconfirm --devel --ignore pikaur-git')
        # pikaur(f'-S {self.dev_pkg_name} --noconfirm --devel')
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.dev_pkg_name].version,
            self.dev_old_version)
Example #9
0
    def test_devel_upgrade(self):
        """
        test upgrade of AUR dev package
        """

        self.downgrade_dev_pkg()

        query_result = pikaur('-Qu').stdout
        self.assertEqual(len(query_result.splitlines()), 0)

        # and finally test the sysupgrade itself
        pikaur('-Su --noconfirm --devel --ignore pikaur-git')
        # pikaur(f'-S {self.dev_pkg_name} --noconfirm --devel')
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.dev_pkg_name].version,
            self.dev_old_version)
Example #10
0
 def downgrade_repo_pkg(self,
                        repo_pkg_name: str,
                        fake_makepkg=False,
                        skippgpcheck=False,
                        count=10) -> str:
     self.remove_if_installed(repo_pkg_name)
     spawn(f'rm -fr ./{repo_pkg_name}')
     pikaur(f'-G {repo_pkg_name}')
     some_older_commit = spawn(f'git -C ./{repo_pkg_name} log --format=%h'
                               ).stdout_text.splitlines()[count]
     spawn(f'git -C ./{repo_pkg_name} checkout {some_older_commit}')
     pikaur('-P -i --noconfirm '
            f'./{repo_pkg_name}/trunk/PKGBUILD',
            fake_makepkg=fake_makepkg,
            skippgpcheck=skippgpcheck)
     self.assertInstalled(repo_pkg_name)
     return PackageDB.get_local_dict()[repo_pkg_name].version
Example #11
0
 def downgrade_dev_pkg(self):
     # test -P <custom_name> and -G -d during downgrading
     self.remove_if_installed(self.dev_pkg_name)
     spawn(f'rm -fr ./{self.dev_pkg_name}')
     pikaur(f'-G -d {self.dev_pkg_name}')
     dev_pkg_url = self.dev_pkg_url.replace('/', r'\/')
     spawn([
         "bash", "-c", f"cd ./{self.dev_pkg_name}/ && "
         "sed -e 's/"
         "^source=.*"
         "/"
         f'source=("git+{dev_pkg_url}#branch=master~1")'
         "/' PKGBUILD > PKGBUILD_prev"
     ])
     pikaur(f'-P -i --noconfirm ./{self.dev_pkg_name}/PKGBUILD_prev')
     self.assertInstalled(self.dev_pkg_name)
     self.dev_old_version = PackageDB.get_local_dict()[
         self.dev_pkg_name].version
Example #12
0
    def test_syu_ignore(self):
        """
        test --ignore flag with sysupgrade
        """

        self.downgrade_repo1_pkg()
        self.downgrade_repo2_pkg()
        self.downgrade_aur1_pkg()
        self.downgrade_aur2_pkg()

        # ignore all upgradeable packages
        pikaur(
            '-Su --noconfirm '
            f'--ignore {self.repo_pkg_name} '
            f'--ignore {self.aur_pkg_name} '
            f'--ignore {self.repo2_pkg_name} '
            f'--ignore {self.aur2_pkg_name}'
        )
        self.assertEqual(
            PackageDB.get_local_dict()[self.repo_pkg_name].version,
            self.repo_old_version
        )
        self.assertEqual(
            PackageDB.get_local_dict()[self.aur_pkg_name].version,
            self.aur_old_version
        )
        self.assertEqual(
            PackageDB.get_local_dict()[self.repo2_pkg_name].version,
            self.repo2_old_version
        )
        self.assertEqual(
            PackageDB.get_local_dict()[self.aur2_pkg_name].version,
            self.aur2_old_version
        )

        # ignore one of repo pkgs and one of AUR pkgs
        pikaur(
            '-Su --noconfirm '
            f'--ignore {self.repo_pkg_name} '
            f'--ignore {self.aur_pkg_name}'
        )
        self.assertEqual(
            PackageDB.get_local_dict()[self.repo_pkg_name].version,
            self.repo_old_version
        )
        self.assertEqual(
            PackageDB.get_local_dict()[self.aur_pkg_name].version,
            self.aur_old_version
        )
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.repo2_pkg_name].version,
            self.repo2_old_version
        )
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.aur2_pkg_name].version,
            self.aur2_old_version
        )

        # ignore the only remaining AUR package
        pikaur('-Su --noconfirm '
               f'--ignore {self.aur_pkg_name}')
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.repo_pkg_name].version,
            self.repo_old_version
        )
        self.assertEqual(
            PackageDB.get_local_dict()[self.aur_pkg_name].version,
            self.aur_old_version
        )

        self.downgrade_repo1_pkg()

        # ignore the only one remaining repo package
        pikaur('-Su --noconfirm '
               f'--ignore {self.repo_pkg_name}')
        self.assertEqual(
            PackageDB.get_local_dict()[self.repo_pkg_name].version,
            self.repo_old_version
        )
        self.assertNotEqual(
            PackageDB.get_local_dict()[self.aur_pkg_name].version,
            self.aur_old_version
        )