summaryrefslogtreecommitdiff
path: root/systemd/test/test_login.py
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2017-03-13 16:03:49 -0400
committerGitHub <noreply@github.com>2017-03-13 16:03:49 -0400
commite121ae49abd2821e16710d036fc726ea11c82a0b (patch)
tree1640a25456803db24c5f7bf59ad7911bf94deba4 /systemd/test/test_login.py
parent8921c79fb98e5e04c0e2f00813e9d8e015e4206e (diff)
parentc7e393b3ca58013b2afcd02620c64c6fe66d21f4 (diff)
downloadpython-systemd-e121ae49abd2821e16710d036fc726ea11c82a0b.tar.gz
Merge pull request #34 from keszybz/test-skipping
Improve test skipping on old systems.
Diffstat (limited to 'systemd/test/test_login.py')
-rw-r--r--systemd/test/test_login.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/systemd/test/test_login.py b/systemd/test/test_login.py
new file mode 100644
index 0000000..afb5f45
--- /dev/null
+++ b/systemd/test/test_login.py
@@ -0,0 +1,48 @@
+from __future__ import print_function
+import select
+import contextlib
+import errno
+
+from systemd import login
+
+import pytest
+
+@contextlib.contextmanager
+def skip_oserror(code):
+ try:
+ yield
+ except (OSError, IOError) as e:
+ if e.errno == code:
+ pytest.skip()
+ raise
+
+def test_seats():
+ # just check that we get some sequence back
+ with skip_oserror(errno.ENOENT):
+ seats = login.seats()
+ assert len(seats) >= 0
+
+def test_sessions():
+ with skip_oserror(errno.ENOENT):
+ sessions = login.sessions()
+ assert len(sessions) >= 0
+
+def test_machine_names():
+ with skip_oserror(errno.ENOENT):
+ machine_names = login.machine_names()
+ assert len(machine_names) >= 0
+
+def test_uids():
+ with skip_oserror(errno.ENOENT):
+ uids = login.uids()
+ assert len(uids) >= 0
+
+def test_monitor():
+ p = select.poll()
+
+ with skip_oserror(errno.ENOENT):
+ m = login.Monitor("machine")
+ p.register(m, m.get_events())
+ login.machine_names()
+ p.poll(1)
+ login.machine_names()