# Copyright (c) 2017 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. """Set of Mocks and Stubs for test SCPI & RF Switch. Implement a set of Mocks and Stubs which will be used in unittest for SCPI and RF Switch. """ import socket from autotest_lib.client.common_lib.test_utils import mock from autotest_lib.server.cros.network.rf_switch import rf_switch from autotest_lib.server.cros.network.rf_switch import scpi class SocketMock(mock.mock_class): """Mock socket for scpi test.""" def __init__(self, cls, name, *args, **kwargs): mock.mock_class.__init__(self, cls, name, *args, **kwargs) self.host = None self.port = None self.recv_buffer = '' self.send_data = '' def close(self): pass def connect(self, host, port): self.host = host self.port = port def send(self, data): self.send_data = data def recv(self, size): if len(self.recv_val) > size: return self.recv_val[:size] return self.recv_val class ScpiMock(scpi.Scpi): """Mock object for Scpi.""" def __init__(self, host='1.2.3.4', port=12345, test_interface=False): if test_interface: self.socket = SocketMock(socket, socket) self.socket.connect(host, port) else: scpi.Scpi.__init__(self, host, port) class RfSwitchMock(rf_switch.RfSwitch): """Mock object for RfSwitch.""" def __init__(self, host='1.2.3.4'): self.socket = SocketMock(socket, socket) self.socket.connect(host, scpi.Scpi.SCPI_PORT)