test: use `useradd` instead of `adduser`
authorFrantisek Sumsal <frantisek@sumsal.cz>
Tue, 30 Jul 2019 12:27:44 +0000 (14:27 +0200)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Tue, 30 Jul 2019 18:26:25 +0000 (20:26 +0200)
`adduser` is in certain cases a standalone package which provides a
better user experience. In other cases it's just a symlink to `useradd`.
And some distributions don't have `adduser` at all, like Arch Linux.
Let's use the `useradd` binary instead, which should provide the same
functionality everywhere.

test/networkd-test.py

index 8b1aeed..c971570 100755 (executable)
@@ -66,7 +66,8 @@ def setUpModule():
     # create static systemd-network user for networkd-test-router.service (it
     # needs to do some stuff as root and can't start as user; but networkd
     # still insists on the user)
-    subprocess.call(['adduser', '--system', '--no-create-home', 'systemd-network'])
+    if subprocess.call(['getent', 'passwd', 'systemd-network']) != 0:
+        subprocess.call(['useradd', '--system', '--no-create-home', 'systemd-network'])
 
     for d in ['/etc/systemd/network', '/run/systemd/network',
               '/run/systemd/netif', '/run/systemd/resolve']: