9
class TestBluezResponse(unittest.TestCase):
14
# start a local fake system D-BUS
15
dbus = subprocess.Popen(['dbus-daemon', '--nofork', '--print-address',
17
os.path.join(aptdaemon.test.get_tests_dir(), 'dbus.conf')],
18
stdout=subprocess.PIPE, universal_newlines=True)
19
dbus_address = dbus.stdout.readline().strip()
20
os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = dbus_address
22
subprocess.call(['bluetoothd'])
23
p1 = subprocess.Popen(['hciconfig'],
24
stdout=subprocess.PIPE,
25
universal_newlines=True)
26
p2 = subprocess.Popen(['grep', '\(^hci\|BD\ Address\)'],
27
stdin=p1.stdout, stdout=subprocess.PIPE,
28
universal_newlines=True)
30
hciconf_output = p2.communicate()[0].replace('\t', ' ').split('\n')
33
for line in hciconf_output:
35
device_id = line.split(':')[0]
36
elif "BD Address" in line:
37
self.devices[device_id] = line.split()[2]
39
if len(self.devices) < 1:
40
self.skipTest("No bluetooth devices available for testing")
43
for dev in self.devices:
44
ret = subprocess.call(['bluez-test-device', '-i', dev, 'list'])
45
self.assertEqual(ret, 0)
47
def testAdapter(self):
48
for dev in self.devices:
49
output = subprocess.check_output(['bluez-test-adapter', '-i', dev, 'address'],
50
universal_newlines=True)
51
self.assertIn(self.devices[dev], output)
53
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout, verbosity=2))