1# Lint as: python3 2"""Porting UWB tests from mobly.""" 3import sys 4import time 5 6import logging 7logging.basicConfig(filename="/tmp/uwb_test_log.txt", level=logging.INFO) 8 9from mobly import asserts 10from mobly import base_test 11from mobly import test_runner 12from mobly import utils 13from mobly.controllers import android_device 14from pprint import pprint 15 16UWB_SNIPPET_PACKAGE = 'com.google.snippet.uwb' 17 18class UwbManagerTest(base_test.BaseTestClass): 19 20 def setup_class(self): 21 # Declare that two Android devices are needed. 22 self.initiator, self.responder = self.register_controller( 23 android_device, min_number=2) 24 25 def setup_device(device): 26 # Expect uwb apk to be installed as it is configured to install 27 # with the module configuration AndroidTest.xml on both devices. 28 device.adb.shell([ 29 'pm', 'grant', UWB_SNIPPET_PACKAGE, 30 'android.permission.UWB_RANGING' 31 ]) 32 device.load_snippet('uwb_snippet', UWB_SNIPPET_PACKAGE) 33 34 # Sets up devices in parallel to save time. 35 utils.concurrent_exec( 36 setup_device, ((self.initiator,), (self.responder,)), 37 max_workers=2, 38 raise_on_exception=True) 39 40 41 def test_default_uwb_state(self): 42 """Verifies default UWB state is On after flashing the device.""" 43 asserts.assert_true(self.initiator.uwb_snippet.isUwbEnabled(), 44 "UWB state: Off; Expected: On.") 45 asserts.assert_true(self.responder.uwb_snippet.isUwbEnabled(), 46 "UWB state: Off; Expected: On.") 47 48 def test_uwb_toggle(self): 49 """Verifies UWB toggle on/off """ 50 self.initiator.uwb_snippet.setUwbEnabled(False) 51 self.responder.uwb_snippet.setUwbEnabled(False) 52 # TODO: Use callback to wait for toggle off completion. 53 time.sleep(5) 54 asserts.assert_false(self.initiator.uwb_snippet.isUwbEnabled(), 55 "UWB state: Off; Expected: On.") 56 asserts.assert_false(self.responder.uwb_snippet.isUwbEnabled(), 57 "UWB state: Off; Expected: On.") 58 59 self.initiator.uwb_snippet.setUwbEnabled(True) 60 self.responder.uwb_snippet.setUwbEnabled(True) 61 # TODO: Use callback to wait for toggle off completion. 62 time.sleep(5) 63 asserts.assert_true(self.initiator.uwb_snippet.isUwbEnabled(), 64 "UWB state: Off; Expected: On.") 65 asserts.assert_true(self.responder.uwb_snippet.isUwbEnabled(), 66 "UWB state: Off; Expected: On.") 67 68if __name__ == '__main__': 69 # Take test args 70 index = sys.argv.index('--') 71 sys.argv = sys.argv[:1] + sys.argv[index + 1:] 72 73 test_runner.main() 74