Skip to content

Commit

Permalink
Add docstrings to InterceptAllBusClient
Browse files Browse the repository at this point in the history
  • Loading branch information
forslund committed Jul 9, 2021
1 parent 5f36a62 commit d241557
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions test/integrationtests/voight_kampff/features/environment.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ def create_voight_kampff_logger():


class InterceptAllBusClient(MessageBusClient):
"""Bus Client storing all messages recieved.
This allows readback of older messages and non-event-driven operation.
"""
def __init__(self):
super().__init__()
self.messages = []
Expand All @@ -46,12 +50,23 @@ def __init__(self):
self._processed_messages = 0

def on_message(self, message):
"""Extends normal operation by storing the recieved message.
Args:
message (Message): message from the Mycroft bus
"""
with self.message_lock:
self.messages.append(Message.deserialize(message))
self.new_message_available.set()
super().on_message(message)

def get_messages(self, msg_type):
"""Get messages from received list of messages.
Args:
msg_type (None,str): string filter for messagetype to extract.
if None all messages will be returned.
"""
with self.message_lock:
self._processed_messages = len(self.messages)
if msg_type is None:
Expand All @@ -60,6 +75,11 @@ def get_messages(self, msg_type):
return [m for m in self.messages if m.msg_type == msg_type]

def remove_message(self, msg):
"""Remove a specific message from the list of messages.
Args:
msg (Message): message to remove from the list
"""
with self.message_lock:
if msg not in self.messages:
raise ValueError(f'{msg} was not found in '
Expand All @@ -71,11 +91,13 @@ def remove_message(self, msg):
self.messages.remove(msg)

def clear_messages(self):
"""Clear all messages that has been fetched atleast once."""
with self.message_lock:
self.messages = self.messages[:self._processed_messages]
self._processed_messages = 0

def clear_all_messages(self):
"""Clear all messages."""
with self.message_lock:
self.messages = []
self._processed_messages = 0
Expand Down

0 comments on commit d241557

Please sign in to comment.