aboutsummaryrefslogtreecommitdiff
path: root/tests/installer-steps/test_idempotency_cluster.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/installer-steps/test_idempotency_cluster.py')
-rw-r--r--tests/installer-steps/test_idempotency_cluster.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/installer-steps/test_idempotency_cluster.py b/tests/installer-steps/test_idempotency_cluster.py
index ecb279d..0cca750 100644
--- a/tests/installer-steps/test_idempotency_cluster.py
+++ b/tests/installer-steps/test_idempotency_cluster.py
@@ -114,6 +114,33 @@ class EnableUserService(unittest.TestCase):
out = run("enable_user_service", one).stdout
self.assertIn("RC=0", out)
+ def test_socket_unit_lands_in_sockets_target_wants(self):
+ # A socket unit's [Install] is WantedBy=sockets.target, so enabling it
+ # via default.target.wants would never socket-activate. The optional
+ # fifth arg names the wants target.
+ with tempfile.TemporaryDirectory() as home:
+ body = (
+ f'enable_user_service {ME!r} podman.socket '
+ f'/usr/lib/systemd/user/podman.socket {home!r} sockets.target\n'
+ f'link="{home}/.config/systemd/user/sockets.target.wants/podman.socket"\n'
+ f'[ -L "$link" ] && echo "LINK=yes" || echo "LINK=no"\n'
+ f'echo "TARGET=$(readlink "$link")"'
+ )
+ out = run("enable_user_service", body).stdout
+ self.assertIn("LINK=yes", out)
+ self.assertIn("TARGET=/usr/lib/systemd/user/podman.socket", out)
+
+ def test_omitted_target_still_defaults_to_default_target(self):
+ with tempfile.TemporaryDirectory() as home:
+ body = (
+ f'enable_user_service {ME!r} gamemoded.service '
+ f'/usr/lib/systemd/user/gamemoded.service {home!r}\n'
+ f'[ -L "{home}/.config/systemd/user/default.target.wants/gamemoded.service" ] '
+ f'&& echo "DEFAULT=yes" || echo "DEFAULT=no"'
+ )
+ out = run("enable_user_service", body).stdout
+ self.assertIn("DEFAULT=yes", out)
+
if __name__ == "__main__":
unittest.main()