mirror of
https://github.com/kiviktnm/decman.git
synced 2026-09-19 12:08:28 +00:00
- Added basic pacman/systemd wrappers - Added way to manage AUR and user packages
81 lines
2.9 KiB
Python
81 lines
2.9 KiB
Python
# pylint: disable=missing-module-docstring,missing-class-docstring,missing-function-docstring
|
|
|
|
import unittest
|
|
from decman.lib import UserFacingError, Pacman, Store
|
|
from decman.lib.aur import ForeignPackageManager, DepTreeNode, ForeignPackage, ExtendedPackageSearch
|
|
|
|
|
|
class TestAUR(unittest.TestCase):
|
|
|
|
def setUp(self) -> None:
|
|
self.aur = ForeignPackageManager(Store(), Pacman(),
|
|
ExtendedPackageSearch())
|
|
|
|
def test_should_upgrade_package_returns_true_on_newer_version(self):
|
|
self.assertTrue(
|
|
self.aur.should_upgrade_package("test", "0.1.9", "0.2.0"))
|
|
|
|
def test_should_upgrade_package_returns_false_on_older_version(self):
|
|
self.assertFalse(
|
|
self.aur.should_upgrade_package("test", "0.1.9", "0.1.8"))
|
|
|
|
def test_should_upgrade_package_returns_false_on_same_version(self):
|
|
self.assertFalse(
|
|
self.aur.should_upgrade_package("test", "0.1.9", "0.1.9"))
|
|
|
|
def test_should_upgrade_package_returns_true_on_devel(self):
|
|
self.assertTrue(
|
|
self.aur.should_upgrade_package("test-git",
|
|
"0",
|
|
"0",
|
|
upgrade_devel=True))
|
|
|
|
|
|
class TestDepTree(unittest.TestCase):
|
|
|
|
def test_add_dependency(self):
|
|
root = DepTreeNode("", None)
|
|
|
|
root.add_dependency_package("A", [])
|
|
root.add_dependency_package("B", ["A"])
|
|
root.add_dependency_package("B1", ["A"])
|
|
root.add_dependency_package("C", ["B", "A"])
|
|
|
|
self.assertIn("A", root.children)
|
|
self.assertIn("B", root.children["A"].children)
|
|
self.assertIn("B1", root.children["A"].children)
|
|
self.assertIn("C", root.children["A"].children["B"].children)
|
|
|
|
def test_cyclic_dep_fails(self):
|
|
root = DepTreeNode("", None)
|
|
|
|
root.add_dependency_package("A", [])
|
|
root.add_dependency_package("B", ["A"])
|
|
|
|
with self.assertRaises(UserFacingError):
|
|
root.add_dependency_package("A", ["B", "A"])
|
|
|
|
def test_get_and_remove_outer_deps(self):
|
|
root = DepTreeNode("", None)
|
|
|
|
root.add_dependency_package("A", [])
|
|
root.add_dependency_package("B", ["A"])
|
|
root.add_dependency_package("B1", ["A"])
|
|
root.add_dependency_package("C", ["B", "A"])
|
|
|
|
a = ForeignPackage("A")
|
|
a.add_foreign_dependency_packages(["B", "B1", "C"])
|
|
b = ForeignPackage("B")
|
|
b.add_foreign_dependency_packages(["C"])
|
|
b1 = ForeignPackage("B1")
|
|
c = ForeignPackage("C")
|
|
|
|
self.assertCountEqual(root.get_and_remove_outer_dep_pkgs(), [c, b1])
|
|
self.assertCountEqual(root.get_and_remove_outer_dep_pkgs(), [b])
|
|
self.assertCountEqual(root.get_and_remove_outer_dep_pkgs(), [a])
|
|
|
|
last = root.get_and_remove_outer_dep_pkgs()
|
|
|
|
self.assertEqual(len(last), 1)
|
|
self.assertEqual(last.pop().name, "")
|