Skip to content

Commit

Permalink
Merge pull request #85 from DankersW/feature/removing_notify
Browse files Browse the repository at this point in the history
Feature/removing notify
  • Loading branch information
DankersW authored May 25, 2021
2 parents 9218863 + 0f61741 commit 3727776
Show file tree
Hide file tree
Showing 8 changed files with 11 additions and 22 deletions.
3 changes: 1 addition & 2 deletions home_automation_framework/db/db_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ def run(self) -> None:
action = self.action_selector(event=item.event)
action(event=item.event, msg=item)

def notify(self, event: str, msg: ObserverMessage) -> None:
self.log.debug(f"Received event {event} on notify")
def notify(self, msg: ObserverMessage) -> None:
self.observer_notify_queue.put(msg)

def action_selector(self, event: str) -> Callable:
Expand Down
8 changes: 4 additions & 4 deletions home_automation_framework/framework/framework.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ def register(self, events, obs_object, callback=None) -> None:
def unregister(self, event, obs_object) -> None:
del self.get_subscribers(event)[obs_object]

def dispatch(self, event, message) -> None:
for _, callback in self.get_subscribers(event).items():
callback(event, message)
def dispatch(self, message) -> None:
for _, callback in self.get_subscribers(message.event).items():
callback(message)


class IotSubject:
Expand Down Expand Up @@ -90,7 +90,7 @@ def run(self) -> None:
self.notify_observers(msg=msg)

def notify_observers(self, msg: ObserverMessage) -> None:
self.subject.dispatch(event=msg.event, message=msg)
self.subject.dispatch(message=msg)

def get_observer_events(self) -> ObserverMessage:
return self.observer_queue.get()
9 changes: 1 addition & 8 deletions home_automation_framework/host_health/health_monitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def run(self) -> None:
sleep_time = self.update_time_sec - ((time() - start_time) % self.update_time_sec)
sleep(sleep_time)

def notify(self, event: str, msg: ObserverMessage) -> None:
def notify(self, msg: ObserverMessage) -> None:
pass

def _fetch_host_data(self) -> dict:
Expand Down Expand Up @@ -79,10 +79,3 @@ def poll_cpu_load(self) -> float:
except ValueError as error:
self.log.error(f'Parsing of the data went wrong: {error}')
return 0


if __name__ == '__main__':
test_queue = Queue(10)
t_event = Event()
hm = HealthMonitor(test_queue, thread_event=t_event)
hm.start()
3 changes: 1 addition & 2 deletions home_automation_framework/iot_gateway/device_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ def __init__(self, queue: Queue, thread_event: Event) -> None:
def __del__(self) -> None:
self.running = False

def notify(self, event: str, msg: ObserverMessage) -> None:
self.log.debug(f"Received event {event} on notify")
def notify(self, msg: ObserverMessage) -> None:
self._observer_notify_queue.put(item=msg)

def run(self) -> None:
Expand Down
3 changes: 1 addition & 2 deletions home_automation_framework/iot_gateway/mqtt_gateway.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ def run(self):
if queue_item.event == "digital_twin":
self._handle_digital_twin_event(msg=queue_item)

def notify(self, event: str, msg: ObserverMessage):
self.log.debug(f"Received event {event} on notify")
def notify(self, msg: ObserverMessage):
self._observer_notify_queue.put(item=msg)

def get_mqtt_config(self) -> dict:
Expand Down
2 changes: 1 addition & 1 deletion tests/db/test_db_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def test_notify(self, mock_mongo):
data = {'test': 123}
event = 'test'
msg = ObserverMessage(event=event, data=data)
db_handler.notify(event=event, msg=msg)
db_handler.notify(msg=msg)
queue_item = db_handler.observer_notify_queue.get()
self.assertEqual(queue_item.event, event)
self.assertEqual(queue_item.data, data)
Expand Down
4 changes: 2 additions & 2 deletions tests/iot_gateway/test_device_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ def test_store_remote_digital_twin(self):
device_manager.start()
moch_dt = ["abc"]
notify_msg = ObserverMessage(event="digital_twin", subject="retrieved_digital_twin", data=moch_dt)
device_manager.notify(msg=notify_msg, event="")
device_manager.notify(msg=notify_msg)
sleep(0.5)
self.assertEqual(device_manager.remote_digital_twin, moch_dt)
device_manager.running = False
device_manager.notify(msg=ObserverMessage(data="", event=""), event="")
device_manager.notify(msg=ObserverMessage(data="", event=""))

def test_wait_for_status_messages_not_running(self):
wait_period = 0.5
Expand Down
1 change: 0 additions & 1 deletion todo.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
## Needed
- [ ] Re-think the DB, useing device_objectId in other documents instead of a raw name
- [ ] Bumb test coverage
- [ ] In the notify, remove the event function parameter
- [ ] Rewrite mongo and db_handler in a proper way

## Features
Expand Down

0 comments on commit 3727776

Please sign in to comment.