~ubuntu-branches/ubuntu/raring/bluez/raring

« back to all changes in this revision

Viewing changes to debian/tests/bluez_response

  • Committer: Package Import Robot
  • Author(s): Mathieu Trudel-Lapierre
  • Date: 2012-07-12 14:53:13 UTC
  • Revision ID: package-import@ubuntu.com-20120712145313-m0yxq6ow6ro6wznl
Tags: 4.101-0ubuntu2
* debian/control: enable autopkgtest tests; add XS-Testsuite. 
* debian/tests/control, debian/tests/bluez_response: add new tests for bluez
  adapter and device support.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python3
 
2
import unittest
 
3
import subprocess
 
4
import sys
 
5
import os
 
6
 
 
7
import aptdaemon.test
 
8
 
 
9
class TestBluezResponse(unittest.TestCase):
 
10
 
 
11
  devices = {}
 
12
 
 
13
  def setUp(self):
 
14
    # start a local fake system D-BUS
 
15
    dbus = subprocess.Popen(['dbus-daemon', '--nofork', '--print-address',
 
16
                            '--config-file',
 
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
 
21
 
 
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)
 
29
    p1.stdout.close()
 
30
    hciconf_output = p2.communicate()[0].replace('\t', ' ').split('\n')
 
31
 
 
32
    device_id = ""
 
33
    for line in hciconf_output:
 
34
      if "hci" in line:
 
35
        device_id = line.split(':')[0]
 
36
      elif "BD Address" in line:
 
37
        self.devices[device_id] = line.split()[2]
 
38
 
 
39
    if len(self.devices) < 1:
 
40
      self.skipTest("No bluetooth devices available for testing")
 
41
 
 
42
  def testDevice(self):
 
43
    for dev in self.devices:
 
44
      ret = subprocess.call(['bluez-test-device', '-i', dev, 'list'])
 
45
      self.assertEqual(ret, 0)
 
46
 
 
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)
 
52
 
 
53
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout, verbosity=2))