Add infrastructure for Interactive tests

Inspired by the SemiAuto tests used by the test team, this uses a
similar approach but wrapped in an XML-RPC server deployed to the
client.

BUG=chromium:256771
TEST=server test that uses interactive_client

Change-Id: I8420a2a2ed6fc031b97044d6bbcf32e50cbcf4a4
Reviewed-on: https://gerrit.chromium.org/gerrit/63640
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Scott James Remnant <keybuk@chromium.org>
Tested-by: Scott James Remnant <keybuk@chromium.org>
diff --git a/server/cros/bluetooth/bluetooth_tester.py b/server/cros/bluetooth/bluetooth_tester.py
index fde3683..3ad9d0c 100644
--- a/server/cros/bluetooth/bluetooth_tester.py
+++ b/server/cros/bluetooth/bluetooth_tester.py
@@ -2,30 +2,28 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import logging
-
-from autotest_lib.client.common_lib import error
 from autotest_lib.client.cros import constants
 from autotest_lib.server import autotest
 
 
 class BluetoothTester(object):
-    """BluetoothTester is a thin layer of logic over a remote tester."""
+    """BluetoothTester is a thin layer of logic over a remote tester.
+
+    The Autotest host object representing the remote tester, passed to this
+    class on initialization, can be accessed from its host property.
+
+    """
+
 
     XMLRPC_BRINGUP_TIMEOUT_SECONDS = 60
 
-    @property
-    def host(self):
-        """@return host object representing the remote tester."""
-        return self._host
-
     def __init__(self, tester_host):
         """Construct a BluetoothTester.
 
-        @param tester_host host object representing a remote host.
+        @param tester_host: host object representing a remote host.
 
         """
-        self._host = tester_host
+        self.host = tester_host
         # Make sure the client library is on the device so that the proxy code
         # is there when we try to call it.
         client_at = autotest.Autotest(self.host)
@@ -40,7 +38,8 @@
                   constants.BLUETOOTH_TESTER_XMLRPC_SERVER_READY_METHOD,
                 timeout_seconds=self.XMLRPC_BRINGUP_TIMEOUT_SECONDS)
 
+
     def close(self):
         """Tear down state associated with the client."""
         # This kills the RPC server.
-        self._host.close()
+        self.host.close()