Skip to content

Instantly share code, notes, and snippets.

@keegoo
Created January 27, 2021 03:52
Show Gist options
  • Save keegoo/4106080b490ce0ab4dbbaaa0937dad36 to your computer and use it in GitHub Desktop.
Save keegoo/4106080b490ce0ab4dbbaaa0937dad36 to your computer and use it in GitHub Desktop.
Notes for Locust, a Python load test library

Event Hook example

The original code is from line 7 to 47 in event.py.

class EventHook:
    def __init__(self):
        self._handlers = []
    
    def add_listener(self, handler):
        self._handlers.append(handler)
    
    def remove_listener(self, handler):
        self._handlers.remove(handler)
        
    def fire(self, **kwargs):
        for handler in self._handlers:
            try:
                handler(**kwargs)
            except Exception:
                print("error")

def on_my_event(a, b):
    print("Event was fired with arguments: %s, %s" % (a, b))

# ---------- example ----------
my_event = EventHook()
my_event.add_listener(on_my_event)
my_event.fire(a="foo", b="bar")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment