Source code for inet_nm.fake_usb
import json
import os
[docs]
class Device:
def __init__(self, kwargs):
self.kwargs = kwargs
[docs]
def find_parent(self, subsystem=None, DEVTYPE=None, **kwargs):
kwargs["subsystem"] = subsystem
kwargs["DEVTYPE"] = DEVTYPE
if "parent" in self.kwargs:
return Device(self.kwargs["parent"])
return None
[docs]
def get(self, key):
return self.kwargs[key]
@property
def device_node(self):
return self.kwargs.get("device_node", "")
[docs]
class Context:
[docs]
def list_devices(self, subsystem=None, DEVTYPE=None, **kwargs):
kwargs["subsystem"] = subsystem
kwargs["DEVTYPE"] = DEVTYPE
# Load from USB dev path .json
path = os.getenv("INET_NM_FAKE_USB_PATH")
if path is None:
raise EnvironmentError(
"To use fake USB devs one must set the INET_NM_FAKE_USB_PATH."
)
with open(path, "r") as f:
fake_devices = json.load(f)
ldevs = []
for devs in fake_devices.values():
ldevs.extend(devs)
for device in ldevs:
if all([device.get(key, None) == kwargs[key] for key in kwargs]):
yield Device(device)