Home | History | Annotate | Download | only in utils
      1 """Base class for automated android tests."""
      2 
      3 
      4 
      5 from mobly import base_test
      6 from mobly import logger
      7 from mobly.controllers import android_device
      8 from mobly.controllers.android_device_lib import adb
      9 
     10 ANDROID_SNIPPET_PACKAGE = 'com.google.android.test'
     11 
     12 
     13 class AndroidBaseTest(base_test.BaseTestClass):
     14 
     15   def log_bt_stack_conf(self, device):
     16     try:
     17       bt_stack_conf = device.adb.shell(['cat', '/etc/bluetooth/bt_stack.conf'])
     18     except adb.AdbError:
     19       device.log.debug('No /etc/bluetooth/bt_stack.conf file found on device.')
     20     else:
     21       device.log.debug('Content of /etc/bluetooth/bt_stack.conf: %s',
     22                        bt_stack_conf)
     23 
     24   def setup_class(self):
     25     # Registering android_device controller module, and declaring that the test
     26     # requires at least two Android devices.
     27     self.ads = self.register_controller(android_device, min_number=2)
     28     self.dut_a = self.ads[0]
     29     self.dut_b = self.ads[1]
     30     self.dut_a.load_snippet('android', ANDROID_SNIPPET_PACKAGE)
     31     self.dut_b.load_snippet('android', ANDROID_SNIPPET_PACKAGE)
     32     self.log_bt_stack_conf(self.dut_a)
     33     self.log_bt_stack_conf(self.dut_b)
     34 
     35   def on_fail(self, record):
     36     """Only executed after a test fails.
     37 
     38     Collect debug info here.
     39 
     40     Args:
     41       record: a copy of the test result record of the test.
     42     """
     43     begin_time = logger.epoch_to_log_line_timestamp(record.begin_time)
     44     android_device.take_bug_reports([self.dut_a, self.dut_b], record.test_name,
     45                                     begin_time)
     46