diff --git a/flake8/notifier.py b/flake8/notifier.py index d366fbf..5a75f87 100644 --- a/flake8/notifier.py +++ b/flake8/notifier.py @@ -40,7 +40,7 @@ class Notifier(object): def notify(self, error_code, *args, **kwargs): """Notify all listeners for the specified error code.""" for listener in self.listeners_for(error_code): - listener.notify(*args, **kwargs) + listener.notify(error_code, *args, **kwargs) def register_listener(self, error_code, listener): """Register a listener for a specific error_code.""" diff --git a/tests/test_notifier.py b/tests/test_notifier.py new file mode 100644 index 0000000..44f2dc9 --- /dev/null +++ b/tests/test_notifier.py @@ -0,0 +1,31 @@ +import pytest + +from flake8 import notifier + +class _Listener(object): + def __init__(self, error_code): + self.error_code = error_code + self.was_notified = False + + def notify(self, error_code, *args, **kwargs): + assert self.error_code == error_code + self.was_notified = True + + +class TestNotifier(object): + @pytest.fixture(autouse=True) + def setup(self): + self.notifier = notifier.Notifier() + self.listener_map = {} + + for i in range(10): + for j in range(30): + error_code = 'E{0}{1:02d}'.format(i, j) + listener = _Listener(error_code) + self.listener_map[error_code] = listener + self.notifier.register_listener(error_code, listener) + + def test_notify_a_single_error_code(self): + """Show that we notify a specific error code.""" + self.notifier.notify('E111', 'extra', 'args') + assert self.listener_map['E111'].was_notified is True