Source code for autotest.client.net.net_utils_mock

"""Set of Mocks and stubs for network utilities unit tests.

Implement a set of mocks and stubs use to implement unit tests
for the network libraries.
"""

import socket

from autotest.client.net import net_utils
from autotest.client.shared.test_utils import mock


[docs]def os_open(*args, **kwarg): return os_stub('open')
[docs]class os_stub(mock.mock_function): def __init__(self, symbol, **kwargs): mock.mock_function.__init__(self, symbol, *kwargs) readval = ""
[docs] def open(self, *args, **kwargs): return self
[docs] def read(self, *args, **kwargs): return os_stub.readval
[docs]def netutils_netif(iface): return netif_stub(iface, 'net_utils', net_utils.netif)
[docs]class netif_stub(mock.mock_class): def __init__(self, iface, cls, name, *args, **kwargs): mock.mock_class.__init__(self, cls, name, args, *kwargs)
[docs] def wait_for_carrier(self, timeout): return
[docs]class socket_stub(mock.mock_class): """Class use to mock sockets.""" def __init__(self, iface, cls, name, *args, **kwargs): mock.mock_class.__init__(self, cls, name, args, *kwargs) self.recv_val = '' self.throw_timeout = False self.send_val = None self.timeout = None self.family = None self.type = None
[docs] def close(self): pass
[docs] def socket(self, family, type): self.family = family self.type = type
[docs] def settimeout(self, timeout): self.timeout = timeout return
[docs] def send(self, buf): self.send_val = buf
[docs] def recv(self, size): if self.throw_timeout: raise socket.timeout if len(self.recv_val) > size: return self.recv_val[:size] return self.recv_val
[docs] def bind(self, arg): pass
[docs]class network_interface_mock(net_utils.network_interface): def __init__(self, iface='some_name', test_init=False): self._test_init = test_init # test network_interface __init__() if self._test_init: super(network_interface_mock, self).__init__(iface) return self.ethtool = '/mock/ethtool' self._name = iface self.was_down = False self.orig_ipaddr = '1.2.3.4' self.was_loopback_enabled = False self._socket = socket_stub(iface, socket, socket) self.loopback_enabled = False self.driver = 'mock_driver'
[docs] def is_down(self): if self._test_init: return 'is_down' return super(network_interface_mock, self).is_down()
[docs] def get_ipaddr(self): if self._test_init: return 'get_ipaddr' return super(network_interface_mock, self).get_ipaddr()
[docs] def is_loopback_enabled(self): if self._test_init: return 'is_loopback_enabled' return self.loopback_enabled
[docs] def get_driver(self): return self.driver
[docs] def wait_for_carrier(self, timeout=1): return