mirror of
https://github.com/kiviktnm/decman.git
synced 2026-09-19 12:08:28 +00:00
Merge pull request #16 from oatmealraisin/user_services
Fix bug in module user systemd unit handling
This commit is contained in:
@@ -680,11 +680,13 @@ class Source:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def _all_user_units(self) -> dict[str, set[str]]:
|
def _all_user_units(self) -> dict[str, set[str]]:
|
||||||
result = {}
|
result = self.systemd_user_units
|
||||||
result.update(self.systemd_user_units)
|
for module in [m for m in self.modules if m.enabled]:
|
||||||
for module in self.modules:
|
module_user_units: dict[str, list[str]] = module.systemd_user_units()
|
||||||
if module.enabled:
|
for user in module_user_units.keys():
|
||||||
result.update(module.systemd_user_units())
|
if user not in result:
|
||||||
|
result[user] = set()
|
||||||
|
result[user].update(module_user_units[user])
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -264,3 +264,49 @@ class TestSource(unittest.TestCase):
|
|||||||
self.source.packages_to_remove(self.currently_installed_packages),
|
self.source.packages_to_remove(self.currently_installed_packages),
|
||||||
["p4", "A4", "M_A1", "M_A2"],
|
["p4", "A4", "M_A1", "M_A2"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class TestModuleUserServices(unittest.TestCase):
|
||||||
|
|
||||||
|
class ModuleWithUserServiceOne(Module):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__("one", True, "0")
|
||||||
|
|
||||||
|
def systemd_user_units(self) -> dict[str, list[str]]:
|
||||||
|
return {
|
||||||
|
"user": ['foo.service']
|
||||||
|
}
|
||||||
|
|
||||||
|
class ModuleWithUserServiceTwo(Module):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__("two", True, "0")
|
||||||
|
|
||||||
|
def systemd_user_units(self) -> dict[str, list[str]]:
|
||||||
|
return {
|
||||||
|
"user": ['bar.service']
|
||||||
|
}
|
||||||
|
|
||||||
|
def setUp(self) -> None:
|
||||||
|
self.source = Source(
|
||||||
|
pacman_packages=set(),
|
||||||
|
aur_packages=set(),
|
||||||
|
user_packages=set(),
|
||||||
|
ignored_packages=set(),
|
||||||
|
systemd_units=set(),
|
||||||
|
systemd_user_units={},
|
||||||
|
files={},
|
||||||
|
directories={},
|
||||||
|
modules={
|
||||||
|
self.ModuleWithUserServiceOne(),
|
||||||
|
self.ModuleWithUserServiceTwo()
|
||||||
|
},
|
||||||
|
)
|
||||||
|
self.store = Store()
|
||||||
|
|
||||||
|
|
||||||
|
def test_user_units_to_enable(self):
|
||||||
|
self.assertDictEqual(
|
||||||
|
self.source.user_units_to_enable(self.store),
|
||||||
|
{"user": ["foo.service", "bar.service"]},
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user