amend to a147a8b0e1b2f32b6f191932afd3c2db9765e2e3: systemd journal test-cases - additional check appropriate default settings (if testing as not root/sudoer)

pull/2296/merge
sebres 2022-02-08 19:10:22 +01:00
parent bf689c27b8
commit c7ae74ce17
1 changed files with 9 additions and 5 deletions

View File

@ -1352,7 +1352,6 @@ def get_monitor_failures_journal_testcase(Filter_): # pragma: systemd no cover
def setUp(self): def setUp(self):
"""Call before every test case.""" """Call before every test case."""
super(MonitorJournalFailures, self).setUp() super(MonitorJournalFailures, self).setUp()
self._runtimeJournal = None
self.test_file = os.path.join(TEST_FILES_DIR, "testcase-journal.log") self.test_file = os.path.join(TEST_FILES_DIR, "testcase-journal.log")
self.jail = DummyJail() self.jail = DummyJail()
self.filter = None self.filter = None
@ -1390,7 +1389,7 @@ def get_monitor_failures_journal_testcase(Filter_): # pragma: systemd no cover
If not found, SkipTest exception will be raised. If not found, SkipTest exception will be raised.
""" """
# we can cache it: # we can cache it:
if self._runtimeJournal is None: if not hasattr(MonitorJournalFailures, "_runtimeJournal"):
# Depending on the system, it could be found under /run or /var/log (e.g. Debian) # Depending on the system, it could be found under /run or /var/log (e.g. Debian)
# which are pointed by different systemd-path variables. We will # which are pointed by different systemd-path variables. We will
# check one at at time until the first hit # check one at at time until the first hit
@ -1402,9 +1401,14 @@ def get_monitor_failures_journal_testcase(Filter_): # pragma: systemd no cover
self.assertTrue(tmp) self.assertTrue(tmp)
out = str(tmp[1].decode('utf-8')).split('\n')[0] out = str(tmp[1].decode('utf-8')).split('\n')[0]
if out: break if out: break
self._runtimeJournal = out # additional check appropriate default settings (if not root/sudoer and not already set):
if self._runtimeJournal: if os.geteuid() != 0 and os.getenv("F2B_SYSTEMD_DEFAULT_FLAGS", None) is None:
return self._runtimeJournal # filter default SYSTEM_ONLY(4) is hardly usable for not root/sudoer tester,
# so back to default LOCAL_ONLY(1):
os.environ["F2B_SYSTEMD_DEFAULT_FLAGS"] = "0"; # or "1", what will be similar to journalflags=0 or ...=1
MonitorJournalFailures._runtimeJournal = out
if MonitorJournalFailures._runtimeJournal:
return MonitorJournalFailures._runtimeJournal
raise unittest.SkipTest('systemd journal seems to be not available (e. g. no rights to read)') raise unittest.SkipTest('systemd journal seems to be not available (e. g. no rights to read)')
def testJournalFilesArg(self): def testJournalFilesArg(self):