# Copyright (c) 2013 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. from autotest_lib.server import test from autotest_lib.server.cros import interactive_client from autotest_lib.server.cros.bluetooth import bluetooth_device from autotest_lib.server.cros.bluetooth import bluetooth_tester class BluetoothTest(test.test): """Base class for Bluetooth tests. BluetoothTest provides a common warmup() and cleanup() function for the collection of Bluetooth tests that sets the following properties, depending on the arguments to the test and properties of the test object: self.device - BluetoothDevice object for the device being tested self.tester - BluetoothTester object for the device's partner tester self.interactive - InteractiveClient object for the device The latter two may be None if the test is initialized from the control file with the tester_host parameter as None and/or the interactive argument as False. It is not mandatory to use this base class for Bluetooth tests, it is for convenience only. A test with special requirements, or a need to derive from a different base class, may instantiate and clean-up the associated objects on its own. """ def warmup(self, device_host, tester_host, interactive=False): """Initialize the test member objects based on its arguments.""" if interactive: self.interactive = interactive_client.InteractiveClient(device_host) else: self.interactive = None self.device = bluetooth_device.BluetoothDevice(device_host) if tester_host: self.tester = bluetooth_tester.BluetoothTester(tester_host) else: self.tester = None def cleanup(self): """Close the test member objects.""" if self.interactive: self.interactive.close() self.device.copy_logs(self.outputdir) self.device.close() if self.tester: self.tester.copy_logs(self.outputdir) self.tester.close() super(BluetoothTest, self).cleanup()