mirror of
https://github.com/kiviktnm/decman.git
synced 2026-09-19 12:08:28 +00:00
Added modules
This commit is contained in:
@@ -2,12 +2,122 @@
|
||||
|
||||
import unittest
|
||||
from decman.lib import Source, Store
|
||||
from decman import UserPackage
|
||||
from decman import UserPackage, Module
|
||||
|
||||
|
||||
class ExistingTestModule(Module):
|
||||
|
||||
def __init__(self):
|
||||
self.on_enable_executed = False
|
||||
self.on_disable_executed = False
|
||||
self.after_update_executed = False
|
||||
self.after_version_change_executed = False
|
||||
super().__init__("Existing", True, "1")
|
||||
|
||||
def on_enable(self):
|
||||
self.on_enable_executed = True
|
||||
|
||||
def on_disable(self):
|
||||
self.on_disable_executed = True
|
||||
|
||||
def after_update(self):
|
||||
self.after_update_executed = True
|
||||
|
||||
def after_version_change(self):
|
||||
self.after_version_change_executed = True
|
||||
|
||||
|
||||
class ExistingChangedVersionTestModule(Module):
|
||||
|
||||
def __init__(self):
|
||||
self.on_enable_executed = False
|
||||
self.on_disable_executed = False
|
||||
self.after_update_executed = False
|
||||
self.after_version_change_executed = False
|
||||
super().__init__("ExistingChanged", True, "2")
|
||||
|
||||
def on_enable(self):
|
||||
self.on_enable_executed = True
|
||||
|
||||
def on_disable(self):
|
||||
self.on_disable_executed = True
|
||||
|
||||
def after_update(self):
|
||||
self.after_update_executed = True
|
||||
|
||||
def after_version_change(self):
|
||||
self.after_version_change_executed = True
|
||||
|
||||
|
||||
class EnabledTestModule(Module):
|
||||
|
||||
def __init__(self):
|
||||
self.on_enable_executed = False
|
||||
self.on_disable_executed = False
|
||||
self.after_update_executed = False
|
||||
self.after_version_change_executed = False
|
||||
super().__init__("Enabled", True, "1")
|
||||
|
||||
def on_enable(self):
|
||||
self.on_enable_executed = True
|
||||
|
||||
def on_disable(self):
|
||||
self.on_disable_executed = True
|
||||
|
||||
def after_update(self):
|
||||
self.after_update_executed = True
|
||||
|
||||
def after_version_change(self):
|
||||
self.after_version_change_executed = True
|
||||
|
||||
def pacman_packages(self) -> list[str]:
|
||||
return ["M_p1", "M_p2", "M_p3"]
|
||||
|
||||
def systemd_user_units(self) -> dict[str, list[str]]:
|
||||
return {"muser": ["M_u1.service"]}
|
||||
|
||||
|
||||
class DisabledTestModule(Module):
|
||||
|
||||
def __init__(self):
|
||||
self.on_enable_executed = False
|
||||
self.on_disable_executed = False
|
||||
self.after_update_executed = False
|
||||
self.after_version_change_executed = False
|
||||
super().__init__("Disabled", False, "1")
|
||||
|
||||
def on_enable(self):
|
||||
self.on_enable_executed = True
|
||||
|
||||
def on_disable(self):
|
||||
self.on_disable_executed = True
|
||||
|
||||
def after_update(self):
|
||||
self.after_update_executed = True
|
||||
|
||||
def after_version_change(self):
|
||||
self.after_version_change_executed = True
|
||||
|
||||
def aur_packages(self) -> list[str]:
|
||||
return ["M_A1", "M_A2", "M_A3"]
|
||||
|
||||
def systemd_units(self) -> list[str]:
|
||||
return ["M_1.service"]
|
||||
|
||||
|
||||
class TestSource(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.disabled_module = DisabledTestModule()
|
||||
self.enabled_module = EnabledTestModule()
|
||||
self.existing_module = ExistingTestModule()
|
||||
self.existing_module_changed = ExistingChangedVersionTestModule()
|
||||
modules = [
|
||||
self.enabled_module,
|
||||
self.disabled_module,
|
||||
self.existing_module,
|
||||
self.existing_module_changed,
|
||||
]
|
||||
source = Source(
|
||||
pacman_packages=["p1", "p2", "p3"],
|
||||
aur_packages=["A1", "A2", "A3"],
|
||||
@@ -28,12 +138,19 @@ class TestSource(unittest.TestCase):
|
||||
ignored_packages=["i1", "i2"],
|
||||
systemd_units=["1.service", "2.timer"],
|
||||
systemd_user_units={"user": ["u1.service", "u2.timer"]},
|
||||
modules=modules,
|
||||
)
|
||||
|
||||
store = Store()
|
||||
store.enabled_systemd_units.extend(["1.service", "3.service"])
|
||||
store.enabled_user_systemd_units.extend(
|
||||
["user: u1.service", "user: u3.service"])
|
||||
store.enabled_systemd_units.extend(
|
||||
["1.service", "3.service", "M_1.service"])
|
||||
store.enabled_user_systemd_units.extend([("user", "u1.service"),
|
||||
("user", "u3.service")])
|
||||
store.enabled_modules = {
|
||||
"Existing": "1",
|
||||
"ExistingChanged": "1",
|
||||
"Disabled": "1",
|
||||
}
|
||||
|
||||
currently_installed_packages = [
|
||||
"p1",
|
||||
@@ -44,12 +161,48 @@ class TestSource(unittest.TestCase):
|
||||
"A4",
|
||||
"U1",
|
||||
"i1",
|
||||
"M_p3",
|
||||
"M_A1",
|
||||
"M_A2",
|
||||
]
|
||||
|
||||
self.source = source
|
||||
self.store = store
|
||||
self.currently_installed_packages = currently_installed_packages
|
||||
|
||||
def test_after_update_executed(self):
|
||||
self.source.run_after_update()
|
||||
|
||||
self.assertTrue(self.enabled_module.after_update_executed)
|
||||
self.assertTrue(self.existing_module.after_update_executed)
|
||||
self.assertTrue(self.existing_module_changed.after_update_executed)
|
||||
self.assertFalse(self.disabled_module.after_update_executed)
|
||||
|
||||
def test_after_version_change_executed(self):
|
||||
self.source.run_after_version_change(self.store)
|
||||
|
||||
self.assertTrue(self.enabled_module.after_version_change_executed)
|
||||
self.assertTrue(
|
||||
self.existing_module_changed.after_version_change_executed)
|
||||
self.assertFalse(self.existing_module.after_version_change_executed)
|
||||
self.assertFalse(self.disabled_module.after_version_change_executed)
|
||||
|
||||
def test_on_enable_executed(self):
|
||||
self.source.run_on_enable(self.store)
|
||||
|
||||
self.assertTrue(self.enabled_module.on_enable_executed)
|
||||
self.assertFalse(self.disabled_module.on_enable_executed)
|
||||
self.assertFalse(self.existing_module.on_enable_executed)
|
||||
self.assertFalse(self.existing_module_changed.on_enable_executed)
|
||||
|
||||
def test_on_disable_executed(self):
|
||||
self.source.run_on_disable(self.store)
|
||||
|
||||
self.assertTrue(self.disabled_module.on_disable_executed)
|
||||
self.assertFalse(self.enabled_module.on_disable_executed)
|
||||
self.assertFalse(self.existing_module.on_disable_executed)
|
||||
self.assertFalse(self.existing_module_changed.on_disable_executed)
|
||||
|
||||
def test_units_to_enable(self):
|
||||
self.assertCountEqual(
|
||||
self.source.units_to_enable(self.store),
|
||||
@@ -59,13 +212,16 @@ class TestSource(unittest.TestCase):
|
||||
def test_units_to_disable(self):
|
||||
self.assertCountEqual(
|
||||
self.source.units_to_disable(self.store),
|
||||
["3.service"],
|
||||
["3.service", "M_1.service"],
|
||||
)
|
||||
|
||||
def test_user_units_to_enable(self):
|
||||
self.assertDictEqual(
|
||||
self.source.user_units_to_enable(self.store),
|
||||
{"user": ["u2.timer"]},
|
||||
{
|
||||
"user": ["u2.timer"],
|
||||
"muser": ["M_u1.service"]
|
||||
},
|
||||
)
|
||||
|
||||
def test_user_units_to_disable(self):
|
||||
@@ -78,7 +234,7 @@ class TestSource(unittest.TestCase):
|
||||
self.assertCountEqual(
|
||||
self.source.pacman_packages_to_install(
|
||||
self.currently_installed_packages),
|
||||
["p3"],
|
||||
["p3", "M_p1", "M_p2"],
|
||||
)
|
||||
|
||||
def test_foreign_packages_to_install(self):
|
||||
@@ -91,5 +247,5 @@ class TestSource(unittest.TestCase):
|
||||
def test_packages_to_remove(self):
|
||||
self.assertCountEqual(
|
||||
self.source.packages_to_remove(self.currently_installed_packages),
|
||||
["p4", "A4"],
|
||||
["p4", "A4", "M_A1", "M_A2"],
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user