#!/usr/bin/env python3
"""
This script launches a dbus session, sets the DBUS_SESSION_BUS_ADDRESS
and DBUS_STARTER_BUS_TYPE Eenvironment variables and puts the generated files
in the dbus dir location passed as a parameter. It then runs the unit test
script, and then cleans up the generated dbus files.
"""
from subprocess import check_call, check_output
import os
import sys
import argparse
import re
import tempfile
def launch_session_dbus(dbus_dir, dbus_config_file):
"""
Launches a session debus using a modified config file and
sets the DBUS_SESSION_BUS_ADDRESS environment variable
Parameter descriptions:
dbus_dir Directory location for generated files
dbus_config_file File location of dbus sys config file
"""
dbus_pid = os.path.join(dbus_dir,'pid')
dbus_socket = os.path.join(dbus_dir,'system_bus_socket')
dbus_local_conf = os.path.join(dbus_dir,'system-local.conf')
if os.path.isfile(dbus_pid):
os.remove(dbus_pid)
with open(dbus_config_file) as infile, \
open(dbus_local_conf, 'w') as outfile:
for line in infile:
line = re.sub('.*','session', \
line, flags=re.DOTALL)
line = re.sub('.*', \
'%s' % dbus_pid, \
line, flags=re.DOTALL)
line = re.sub('.*', \
'unix:path=%s' % dbus_socket, \
line, flags=re.DOTALL)
line = re.sub('