def __init__(self): self.config = Config() logger.info("Initializing listener") if len(self.config.PINS) < 4: logger.critical("ERROR - please configure all 4 pins") raise SystemExit(1) self.write_files = True self.current_values = []
def setup(self): with patch("%s._load_settings" % pb): with patch("%s._set_defaults" % pb): self.cls = Config()
class TestConfig(object): def setup(self): with patch("%s._load_settings" % pb): with patch("%s._set_defaults" % pb): self.cls = Config() def test_load_settings(self): mock_settings = Container() mock_settings.FOO = 1 mock_settings.BAR = 2 self.cls.FOO = 0 env = {"foo": "bar"} with patch("%s.os.environ" % pbm, env): with patch("%s._load_module" % pb) as mock_load: with patch("%s.logger" % pbm) as mock_logger: mock_load.return_value = mock_settings self.cls._load_settings() assert mock_logger.mock_calls == [call.debug("Loading settings from %s", "piface_webhooks.settings")] assert mock_load.mock_calls == [call("piface_webhooks.settings")] assert self.cls.FOO == 1 assert self.cls.BAR == 2 def test_load_settings_env_var(self): mock_settings = Container() mock_settings.FOO = 1 mock_settings.BAR = 2 self.cls.FOO = 0 env = {"foo": "bar", "PIFACE_WEBHOOKS_SETTINGS_MODULE": "foo.bar"} with patch("%s.os.environ" % pbm, env): with patch("%s._load_module" % pb) as mock_load: with patch("%s.logger" % pbm) as mock_logger: mock_load.return_value = mock_settings self.cls._load_settings() assert mock_logger.mock_calls == [call.debug("Loading settings from %s", "foo.bar")] assert mock_load.mock_calls == [call("foo.bar")] assert self.cls.FOO == 1 assert self.cls.BAR == 2 def test_load_settings_no_settings(self): self.cls.FOO = 0 env = {"foo": "bar"} with patch("%s.os.environ" % pbm, env): with patch("%s._load_module" % pb) as mock_load: with patch("%s.logger" % pbm) as mock_logger: mock_load.return_value = None self.cls._load_settings() assert mock_logger.mock_calls == [ call.debug("Loading settings from %s", "piface_webhooks.settings"), call.error( "Settings module %s could not be loaded; using default " "settings!", "piface_webhooks.settings" ), ] assert mock_load.mock_calls == [call("piface_webhooks.settings")] assert self.cls.FOO == 0 def test_load_module(self): mock_mod = Mock() with patch("%s.importlib.import_module" % pbm) as mock_load: mock_load.return_value = mock_mod res = self.cls._load_module("foo") assert res == mock_mod assert mock_load.mock_calls == [call("foo")] def test_load_module_exception(self): def se_load(m): raise Exception("foo") with patch("%s.importlib.import_module" % pbm) as mock_load: mock_load.side_effect = se_load res = self.cls._load_module("foo") assert res is None assert mock_load.mock_calls == [call("foo")] def test_set_defaults(self): self.cls._set_defaults() assert self.cls.QUEUE_PATH == "/var/spool/piface-webhooks" assert self.cls.NO_LEDS is False assert self.cls.INVERT_LED is False assert self.cls.PINS == [ {"name": "Pin 0", "states": ["off", "on"]}, {"name": "Pin 1", "states": ["off", "on"]}, {"name": "Pin 2", "states": ["off", "on"]}, {"name": "Pin 3", "states": ["off", "on"]}, ] assert self.cls.CALLBACKS == []
def setup(self): with patch('%s._load_settings' % pb): with patch('%s._set_defaults' % pb): self.cls = Config()
class TestConfig(object): def setup(self): with patch('%s._load_settings' % pb): with patch('%s._set_defaults' % pb): self.cls = Config() def test_load_settings(self): mock_settings = Container() mock_settings.FOO = 1 mock_settings.BAR = 2 self.cls.FOO = 0 env = {'foo': 'bar'} with patch('%s.os.environ' % pbm, env): with patch('%s._load_module' % pb) as mock_load: with patch('%s.logger' % pbm) as mock_logger: mock_load.return_value = mock_settings self.cls._load_settings() assert mock_logger.mock_calls == [ call.debug("Loading settings from %s", 'piface_webhooks.settings') ] assert mock_load.mock_calls == [call('piface_webhooks.settings')] assert self.cls.FOO == 1 assert self.cls.BAR == 2 def test_load_settings_env_var(self): mock_settings = Container() mock_settings.FOO = 1 mock_settings.BAR = 2 self.cls.FOO = 0 env = { 'foo': 'bar', 'PIFACE_WEBHOOKS_SETTINGS_MODULE': 'foo.bar', } with patch('%s.os.environ' % pbm, env): with patch('%s._load_module' % pb) as mock_load: with patch('%s.logger' % pbm) as mock_logger: mock_load.return_value = mock_settings self.cls._load_settings() assert mock_logger.mock_calls == [ call.debug("Loading settings from %s", 'foo.bar') ] assert mock_load.mock_calls == [call('foo.bar')] assert self.cls.FOO == 1 assert self.cls.BAR == 2 def test_load_settings_no_settings(self): self.cls.FOO = 0 env = {'foo': 'bar'} with patch('%s.os.environ' % pbm, env): with patch('%s._load_module' % pb) as mock_load: with patch('%s.logger' % pbm) as mock_logger: mock_load.return_value = None self.cls._load_settings() assert mock_logger.mock_calls == [ call.debug("Loading settings from %s", 'piface_webhooks.settings'), call.error( 'Settings module %s could not be loaded; using default ' 'settings!', 'piface_webhooks.settings') ] assert mock_load.mock_calls == [call('piface_webhooks.settings')] assert self.cls.FOO == 0 def test_load_module(self): mock_mod = Mock() with patch('%s.importlib.import_module' % pbm) as mock_load: mock_load.return_value = mock_mod res = self.cls._load_module('foo') assert res == mock_mod assert mock_load.mock_calls == [call('foo')] def test_load_module_exception(self): def se_load(m): raise Exception("foo") with patch('%s.importlib.import_module' % pbm) as mock_load: mock_load.side_effect = se_load res = self.cls._load_module('foo') assert res is None assert mock_load.mock_calls == [call('foo')] def test_set_defaults(self): self.cls._set_defaults() assert self.cls.QUEUE_PATH == '/var/spool/piface-webhooks' assert self.cls.NO_LEDS is False assert self.cls.INVERT_LED is False assert self.cls.PINS == [ { 'name': 'Pin 0', 'states': ['off', 'on'] }, { 'name': 'Pin 1', 'states': ['off', 'on'] }, { 'name': 'Pin 2', 'states': ['off', 'on'] }, { 'name': 'Pin 3', 'states': ['off', 'on'] }, ] assert self.cls.CALLBACKS == []
def test_init(self): with patch('%s._load_settings' % pb) as mock_load: with patch('%s._set_defaults' % pb) as mock_defaults: Config() assert mock_load.mock_calls == [call()] assert mock_defaults.mock_calls == [call()]
def __init__(self): self.config = Config() logger.info("Initializing worker") self.process_events = True