1""" 2Bluetooth Base Test 3 4This test class serves as a base class for others to inherit from. 5It also serves as a device-cleaner to help reset devices between tests. 6 7""" 8 9import logging 10 11from mobly import base_test 12from mobly.controllers import android_device 13 14from utilities import spectatio_utils 15from utilities import bt_utils 16from utilities.main_utils import common_main 17from utilities.video_utils_service import VideoRecording 18 19 20class BluetoothBaseTest(base_test.BaseTestClass): 21 22 def setup_class(self): 23 # Registering android_device controller module, and declaring that the test 24 # requires at least two Android devices. 25 # This setup will need to be overwritten or extended if a test uses three devices. 26 logging.info("Running basic class setup.") 27 self.ads = self.register_controller(android_device, min_number=2) 28 # The device used to discover Bluetooth devices. 29 self.discoverer = android_device.get_device( 30 self.ads, label='auto') 31 # Sets the tag that represents this device in logs. 32 self.discoverer.debug_tag = 'discoverer' 33 # The device that is expected to be discovered 34 self.target = android_device.get_device(self.ads, label='phone') 35 self.target.debug_tag = 'target' 36 logging.info("\tLoading Snippets.") 37 self.target.load_snippet('mbs', android_device.MBS_PACKAGE) 38 self.discoverer.load_snippet('mbs', android_device.MBS_PACKAGE) 39 logging.info("\tInitializing Utilities") 40 self.call_utils = (spectatio_utils.CallUtils(self.discoverer)) 41 self.bt_utils = (bt_utils.BTUtils(self.discoverer, self.target)) 42 logging.info("\tInitializing video services") 43 self.video_utils_service = VideoRecording(self.discoverer, self.__class__.__name__) 44 logging.info("Enabling video recording for Discoverer device") 45 self.video_utils_service.enable_screen_recording() 46 47 def setup_test(self): 48 # Make sure bluetooth is on. 49 self.call_utils.press_home() 50 logging.info("Running basic test setup.") 51 logging.info("\tEnabling bluetooth on Target and Discoverer.") 52 self.target.mbs.btEnable() 53 self.discoverer.mbs.btEnable() 54 55 def teardown_test(self): 56 # Turn Bluetooth off on both devices. 57 logging.info("Running basic test teardown.") 58 self.bt_utils.unpair() 59 logging.info("Disable Bluetooth on Discoverer device") 60 self.discoverer.mbs.btDisable() 61 logging.info("Disable Bluetooth on Target device") 62 self.target.mbs.btDisable() 63 self.call_utils.press_home() 64 self.hu_recording_handler() 65 66 def hu_recording_handler(self): 67 logging.info("Stopping the screen recording on Discoverer Device") 68 self.video_utils_service.stop_screen_recording() 69 logging.info("Pull the screen recording from Discoverer device") 70 self.video_utils_service.pull_recording_file(self.log_path) 71 logging.info("delete the screen recording from the Discoverer device") 72 self.video_utils_service.delete_screen_recording_from_device() 73 74 75if __name__ == '__main__': 76 common_main() 77