From 84aa65274c6d2f8cab0dc2d997e19dee588b0eda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Behrmann?= Date: Wed, 15 Oct 2025 14:33:47 +0200 Subject: [PATCH 1/3] tests: use ENOMEDIUM in test_id128 --- src/systemd/test/test_id128.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/systemd/test/test_id128.py b/src/systemd/test/test_id128.py index ffab469..ece098b 100644 --- a/src/systemd/test/test_id128.py +++ b/src/systemd/test/test_id128.py @@ -23,8 +23,7 @@ def test_randomize(): assert u1 != u2 def test_get_machine(): - # yikes, python2 doesn't know ENOMEDIUM - with skip_oserror(errno.ENOENT, errno.ENOSYS, 123): + with skip_oserror(errno.ENOENT, errno.ENOSYS, errno.ENOMEDIUM): u1 = id128.get_machine() u2 = id128.get_machine() From c2b9882d573b5569ece0f79899191bf6df13e18d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Behrmann?= Date: Wed, 15 Oct 2025 14:40:30 +0200 Subject: [PATCH 2/3] journal: use datetime.timestamp() instead of int-float-stftime-dance datetime.timestamp() will already return the time as a float, so returning it as a string and parsing that back to a float can be omitted. --- src/systemd/journal.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/systemd/journal.py b/src/systemd/journal.py index 16729e9..da3404a 100644 --- a/src/systemd/journal.py +++ b/src/systemd/journal.py @@ -287,13 +287,7 @@ def seek_realtime(self, realtime): >>> j.seek_realtime(yesterday) """ if isinstance(realtime, _datetime.datetime): - try: - realtime = realtime.astimezone() - except TypeError: - # With python2: Required argument 'tz' (pos 1) not found - pass - - realtime = int(float(realtime.strftime("%s.%f")) * 1000000) + realtime = int(realtime.astimezone().timestamp() * 1000000) elif not isinstance(realtime, int): realtime = int(realtime * 1000000) return super(Reader, self).seek_realtime(realtime) From 6ba139282b82ba7c7bd3bafbbc5e807e1fc4dc02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Behrmann?= Date: Wed, 15 Oct 2025 14:44:05 +0200 Subject: [PATCH 3/3] test: drop SO_PASSCRED python2 workaround --- src/systemd/test/test_daemon.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/systemd/test/test_daemon.py b/src/systemd/test/test_daemon.py index 6076f25..7355153 100644 --- a/src/systemd/test/test_daemon.py +++ b/src/systemd/test/test_daemon.py @@ -331,9 +331,7 @@ def test_notify_with_socket(tmpdir): sock.bind(path) except socket.error as e: pytest.xfail('failed to bind socket (%s)' % e) - # SO_PASSCRED is not defined in python2.7 - SO_PASSCRED = getattr(socket, 'SO_PASSCRED', 16) - sock.setsockopt(socket.SOL_SOCKET, SO_PASSCRED, 1) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_PASSCRED, 1) os.environ['NOTIFY_SOCKET'] = path assert notify('READY=1')