• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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