Source code for labgrid.driver.fake

# pylint: disable=arguments-differ
import logging
import re

import attr

from ..factory import target_factory
from ..protocol import CommandProtocol, ConsoleProtocol, FileTransferProtocol, PowerProtocol
from .common import Driver
from .commandmixin import CommandMixin
from .consoleexpectmixin import ConsoleExpectMixin


[docs]@target_factory.reg_driver @attr.s(eq=False) class FakeConsoleDriver(ConsoleExpectMixin, Driver, ConsoleProtocol): txdelay = attr.ib(default=0.0, validator=attr.validators.instance_of(float))
[docs] def __attrs_post_init__(self): super().__attrs_post_init__() self.logger = logging.getLogger("{}({})".format(self, self.target)) self.rxq = [] self.txq = []
def _read(self, *_, **__): if self.rxq: return self.rxq.pop() return b'' def _write(self, data, *_): self.txq.append(data) mo = re.match(rb'^echo "(\w+)""(\w+)"\n$', data) if mo: self.rxq.insert(0, b''.join(mo.groups())+b'\n')
[docs] def open(self): pass
[docs] def close(self): pass
[docs]@target_factory.reg_driver @attr.s(eq=False) class FakeCommandDriver(CommandMixin, Driver, CommandProtocol):
[docs] @Driver.check_active def run(self, *args, timeout=None): # pylint: disable=unused-argument pass
[docs] @Driver.check_active def run_check(self, *args): pass
[docs] @Driver.check_active def get_status(self): pass
[docs]@target_factory.reg_driver @attr.s(eq=False) class FakeFileTransferDriver(Driver, FileTransferProtocol):
[docs] @Driver.check_active def get(self, *args): pass
[docs] @Driver.check_active def put(self, *args): pass
[docs]@target_factory.reg_driver @attr.s(eq=False) class FakePowerDriver(Driver, PowerProtocol):
[docs] @Driver.check_active def on(self, *args): pass
[docs] @Driver.check_active def off(self, *args): pass
[docs] @Driver.check_active def cycle(self, *args): pass