aptly/system/t12_api/systemd_handover.py

49 lines
1.6 KiB
Python

import requests_unixsocket
import urllib.error
import urllib.parse
import urllib.request
import os
import os.path
from lib import BaseTest
class SystemdAPIHandoverTest(BaseTest):
aptly_server = None
socket_path = "/tmp/_aptly_systemdapihandovertest.sock"
def prepare(self):
# On Debian they use /lib on other systems /usr/lib.
systemd_activate = "/usr/lib/systemd/systemd-activate"
if not os.path.exists(systemd_activate):
systemd_activate = "/lib/systemd/systemd-activate"
if not os.path.exists(systemd_activate):
print("Could not find systemd-activate")
return
self.aptly_server = self._start_process("%s -l %s aptly api serve -no-lock" %
(systemd_activate, self.socket_path),)
super(SystemdAPIHandoverTest, self).prepare()
def shutdown(self):
if self.aptly_server is not None:
self.aptly_server.terminate()
self.aptly_server.wait()
self.aptly_server = None
if os.path.exists(self.socket_path):
os.remove(self.socket_path)
super(SystemdAPIHandoverTest, self).shutdown()
def run(self):
pass
"""
Verify we can listen on a unix domain socket.
"""
def check(self):
if self.aptly_server is None:
print("Skipping test as we failed to setup a listener.")
return
session = requests_unixsocket.Session()
r = session.get('http+unix://%s/api/version' % urllib.parse.quote(self.socket_path, safe=''))
self.check_equal(r.json(), {'Version': os.environ['APTLY_VERSION']})