Coverage for /home/fedora/jumpstarter/packages/jumpstarter-driver-network/jumpstarter_driver_network/adapters/dbus.py: 26%

23 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-05-05 20:29 +0000

1from contextlib import contextmanager 

2from os import environ, getenv 

3 

4from .portforward import TcpPortforwardAdapter 

5from jumpstarter.client import DriverClient 

6 

7 

8@contextmanager 

9def DbusAdapter(*, client: DriverClient): 

10 match client.kind: 

11 case "system": 

12 varname = "DBUS_SYSTEM_BUS_ADDRESS" 

13 pass 

14 case "session": 

15 varname = "DBUS_SESSION_BUS_ADDRESS" 

16 pass 

17 case _: 

18 raise ValueError(f"invalid bus type: {client.kind}") 

19 

20 oldenv = getenv(varname) 

21 

22 with TcpPortforwardAdapter(client=client) as addr: 

23 environ[varname] = f"tcp:host={addr[0]},port={addr[1]}" 

24 

25 try: 

26 yield 

27 finally: 

28 if oldenv is None: 

29 del environ[varname] 

30 else: 

31 environ[varname] = oldenv