make better use of pattern matching features

error test updated
This commit is contained in:
onyx-and-iris 2023-08-10 19:12:52 +01:00
parent a61e09b075
commit a635109308
2 changed files with 8 additions and 11 deletions

View File

@ -32,5 +32,5 @@ class TestErrors:
"unknown-0": {"state": True},
"vban-out-1": {"name": "streamname"},
}
with pytest.raises(ValueError, match="invalid config key 'unknown'"):
with pytest.raises(ValueError, match="invalid config key 'unknown-0'"):
vban.apply(CONFIG)

View File

@ -183,17 +183,13 @@ class VbanCmd(metaclass=ABCMeta):
"""
def target(key):
kls, m2, *rem = key.split("-")
match kls:
case "strip" | "bus" | "button":
index = m2
match key.split("-"):
case ["strip" | "bus" | "button" as kls, index]:
target = getattr(self, kls)
case "vban":
dir = f"{m2.rstrip('stream')}stream"
index = rem[0]
target = getattr(self.vban, dir)
case ["vban", direction, index]:
target = getattr(self.vban, f"{direction.rstrip('stream')}stream")
case _:
ERR_MSG = f"invalid config key '{kls}'"
ERR_MSG = f"invalid config key '{key}'"
self.logger.error(ERR_MSG)
raise ValueError(ERR_MSG)
return target[int(index)]
@ -229,7 +225,8 @@ class VbanCmd(metaclass=ABCMeta):
if not self.stopped():
self.logger.debug("events thread shutdown started")
self.stop_event.set()
self.subscriber.join() # wait for subscriber thread to complete cycle
for t in (self.producer, self.subscriber):
t.join()
[sock.close() for sock in self.socks]
self.logger.info(f"{type(self).__name__}: Successfully logged out of {self}")