Start adding tests for Notifier class

This commit is contained in:
Ian Cordasco 2015-12-29 23:04:36 -06:00
parent d1d1d60032
commit 222be9ac49
2 changed files with 32 additions and 1 deletions

View file

@ -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."""

31
tests/test_notifier.py Normal file
View file

@ -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