def test_trace_logged_with_debug_not_set(): with mock.patch.dict(sys.modules, {'weeutil.logger': weeutil.logger}): import user.MQTTSubscribe if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: import importlib importlib.reload(user.MQTTSubscribe) # (only a python 2 error) pylint: disable=no-member with mock.patch('user.MQTTSubscribe.logging') as mock_logging: from user.MQTTSubscribe import Logger weewx.debug = 0 mock_logging._checkLevel.return_value = 0 # pylint: disable=protected-access mode = random_string() message = random_string() SUT = Logger(mode) SUT.trace(message) SUT._logmsg.log.assert_called_once_with( 5, SUT.MSG_FORMAT, mode, message) # pylint: disable=protected-access if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: importlib.reload(user.MQTTSubscribe) # (only a python 2 error) pylint: disable=no-member
def test_error_logged(): with mock.patch.dict(sys.modules, {'weeutil.logger': None}): import user.MQTTSubscribe if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: import importlib importlib.reload(user.MQTTSubscribe) # (only a python 2 error) pylint: disable=no-member with mock.patch('user.MQTTSubscribe.logging') as mock_logging: with mock.patch('user.MQTTSubscribe.syslog') as mock_syslog: from user.MQTTSubscribe import Logger log_level = random.randint(1, 99) mode = random_string() message = random_string() mock_logging._checkLevel.return_value = random.randint( 1, 40) # pylint: disable=protected-access type(mock_syslog).LOG_ERR = mock.PropertyMock( return_value=log_level) SUT = Logger(mode) SUT.error(message) mock_syslog.syslog.assert_called_once_with( log_level, '(%s) user.MQTTSubscribe: %s' % (mode, message)) if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: importlib.reload(user.MQTTSubscribe) # (only a python 2 error) pylint: disable=no-member
def test_trace_not_logged(): with mock.patch.dict(sys.modules, {'weeutil.logger': None}): import user.MQTTSubscribe if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: import importlib importlib.reload(user.MQTTSubscribe) with mock.patch('user.MQTTSubscribe.logging') as mock_logging: with mock.patch('user.MQTTSubscribe.syslog') as mock_syslog: from user.MQTTSubscribe import Logger weewx.debug = 0 mode = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable message = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable mock_logging._checkLevel.return_value = random.randint( 41, 99) # pylint: disable=protected-access SUT = Logger(mode) SUT.trace(message) mock_syslog.syslog.assert_not_called() if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: importlib.reload(user.MQTTSubscribe)
def test_error_not_logged(): with mock.patch.dict(sys.modules, {'weeutil.logger': None}): import user.MQTTSubscribe if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: import importlib importlib.reload(user.MQTTSubscribe) # (only a python 2 error) pylint: disable=no-member with mock.patch('user.MQTTSubscribe.logging') as mock_logging: with mock.patch('user.MQTTSubscribe.syslog') as mock_syslog: from user.MQTTSubscribe import Logger mode = random_string() message = random_string() mock_logging._checkLevel.return_value = random.randint( 41, 99) # pylint: disable=protected-access SUT = Logger(mode) SUT.error(message) mock_syslog.syslog.assert_not_called() if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: importlib.reload(user.MQTTSubscribe) # (only a python 2 error) pylint: disable=no-member
def test_trace_logged_with_debug_set(): with mock.patch.dict(sys.modules, {'weeutil.logger': weeutil.logger}): import user.MQTTSubscribe if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: import importlib importlib.reload(user.MQTTSubscribe) with mock.patch('user.MQTTSubscribe.logging') as mock_logging: from user.MQTTSubscribe import Logger weewx.debug = 2 mock_logging._checkLevel.return_value = 0 # pylint: disable=protected-access mode = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable message = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable SUT = Logger(mode) SUT.trace(message) SUT._logmsg.debug.assert_called_once_with( SUT.MSG_FORMAT, mode, message) # pylint: disable=protected-access if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: importlib.reload(user.MQTTSubscribe)
def test_init_console_set(): with mock.patch.dict(sys.modules, {'weeutil.logger': weeutil.logger}): import user.MQTTSubscribe if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: import importlib importlib.reload(user.MQTTSubscribe) with mock.patch('user.MQTTSubscribe.logging') as mock_logging: from user.MQTTSubscribe import Logger mock_logging._checkLevel.return_value = 0 # pylint: disable=protected-access mode = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable SUT = Logger(mode, console=True) SUT._logmsg.addHandler.assert_called_once() # pylint: disable=protected-access if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: importlib.reload(user.MQTTSubscribe)
def test_init_filename_set(): with mock.patch.dict(sys.modules, {'weeutil.logger': weeutil.logger}): with mock.patch('user.MQTTSubscribe.logging') as mock_logging: from user.MQTTSubscribe import Logger mock_logging._checkLevel.return_value = 0 # pylint: disable=protected-access mock_file_handler = mock.Mock() mock_logging.FileHandler.return_value = mock_file_handler mode = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable filename = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable SUT = Logger(mode, filename=filename) mock_logging.Formatter.assert_called_once() mock_logging.FileHandler.assert_called_once() mock_file_handler.setLevel.assert_called_once() mock_file_handler.setFormatter.assert_called_once() SUT._logmsg.addHandler.assert_called_once() # pylint: disable=protected-access
def test_init_filename(self): with mock.patch.dict(sys.modules, {'weeutil.logger': None}): import user.MQTTSubscribe if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: import importlib importlib.reload(user.MQTTSubscribe) with mock.patch('user.MQTTSubscribe.logging') as mock_logging: with mock.patch('user.MQTTSubscribe.open') as mock_open: from user.MQTTSubscribe import Logger mode = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable filename = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable mock_logging._checkLevel.return_value = 0 # pylint: disable=protected-access Logger(mode, filename=filename) self.assertEqual(mock_open.call_count, 1) mock_open.assert_called_once_with(filename, 'w') if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: importlib.reload(user.MQTTSubscribe)
def test_trace_logged_to_file(): with mock.patch.dict(sys.modules, {'weeutil.logger': None}): import user.MQTTSubscribe if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: import importlib importlib.reload(user.MQTTSubscribe) with mock.patch('user.MQTTSubscribe.logging') as mock_logging: with mock.patch('user.MQTTSubscribe.open') as mock_open: with mock.patch( 'user.MQTTSubscribe.syslog') as mock_syslog: from user.MQTTSubscribe import Logger mock_file = mock.Mock() mock_open.return_value = mock_file log_level = random.randint(1, 99) mode = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable message = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable filename = ''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]) # pylint: disable=unused-variable mock_logging._checkLevel.return_value = random.randint( 1, 10) # pylint: disable=protected-access type(mock_syslog).LOG_DEBUG = mock.PropertyMock( return_value=log_level) SUT = Logger(mode, filename=filename) SUT.trace(message) mock_syslog.syslog.assert_called_once_with( log_level, '(%s) user.MQTTSubscribe: %s' % (mode, message)) mock_file.write.assert_called_once_with( 'user.MQTTSubscribe: %s\n' % message) if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: importlib.reload(user.MQTTSubscribe)
def runit(self, payload, file_pointer, check_results=True): test_data = json.load(file_pointer, object_hook=utils.byteify) config_dict = configobj.ConfigObj( test_data['config'])['MQTTSubscribeService'] testruns = test_data['testruns'] logger = Logger('IntegTest') topics_dict = config_dict.get('topics', {}) manager = TopicManager(topics_dict, logger) unit_system_name = topics_dict.get('unit_system', 'US').strip().upper() if unit_system_name not in weewx.units.unit_constants: raise ValueError("MQTTSubscribe: Unknown unit system: %s" % unit_system_name) unit_system = weewx.units.unit_constants[unit_system_name] on_message = utils.get_callback(payload, config_dict, manager, logger) for testrun in testruns: start_ts = time.time() for topics in testrun['messages']: for topic in topics: topic_info = topics[topic] utils.send_msg(utils.send_direct_msg, payload, on_message, topic, topic_info) end_ts = time.time() records = [] for topic in sorted( manager.subscribed_topics ): # todo - dependent on topic names - not great data = manager.get_accumulated_data(topic, start_ts, end_ts, unit_system) records.append(data) if check_results: results = testrun['results'] result = {} found = False for result in results: if 'accumulate' in result['test']: if payload in result['payloads']: found = True break self.assertTrue(found, "No results for %s" % payload) utils.check(self, payload, records, result['records']) else: for record in records: print(record)
def test_init_set_trace_log_level(self): log_level = 5 with mock.patch.dict(sys.modules, {'weeutil.logger': weeutil.logger}): with mock.patch('user.MQTTSubscribe.logging') as mock_logging: from user.MQTTSubscribe import Logger mock_logging._checkLevel.return_value = log_level # pylint: disable=protected-access mock_logging.getLevelName.return_value = 'Level %i' % log_level mock_grandparent_handler = mock.Mock() mock_grandparent_logger = mock.Mock() mock_grandparent_logger.handlers = [mock_grandparent_handler] mock_grandparent_logger.parent = None mock_parent_handler = mock.Mock() mock_parent_logger = mock.Mock() mock_parent_logger.handlers = [mock_parent_handler] mock_parent_logger.parent = mock_grandparent_logger mock_logger = mock.Mock() mock_logger.parent = mock_parent_logger mock_logging.getLogger.return_value = mock_logger SUT = Logger(''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ]), level=''.join([ random.choice(string.ascii_letters + string.digits) for n in range(32) ])) mock_logging.addLevelName.assert_called_once_with( log_level, 'TRACE') SUT._logmsg.setLevel.called_once_with(log_level) # pylint: disable=protected-access mock_grandparent_handler.setLevel.called_once_with(log_level) mock_parent_handler.setLevel.called_once_with(log_level) self.assertEqual(SUT._logmsg.addHandler.call_count, 2) # pylint: disable=protected-access SUT._logmsg.addHandler.called_once_with( mock_grandparent_handler) # pylint: disable=protected-access SUT._logmsg.addHandler.called_once_with(mock_parent_handler) # pylint: disable=protected-access
def test_init_filename_set(): with mock.patch.dict(sys.modules, {'weeutil.logger': weeutil.logger}): with mock.patch('user.MQTTSubscribe.logging') as mock_logging: from user.MQTTSubscribe import Logger mock_logging._checkLevel.return_value = 0 # pylint: disable=protected-access mock_file_handler = mock.Mock() mock_logging.FileHandler.return_value = mock_file_handler mode = random_string() filename = random_string() SUT = Logger(mode, filename=filename) mock_logging.Formatter.assert_called_once() mock_logging.FileHandler.assert_called_once() mock_file_handler.setLevel.assert_called_once() mock_file_handler.setFormatter.assert_called_once() SUT._logmsg.addHandler.assert_called_once() # pylint: disable=protected-access
def runit(self, payload, file_pointer, check_results=True): test_data = json.load(file_pointer, object_hook=utils.byteify) config_dict = configobj.ConfigObj(test_data['config'])['MQTTSubscribeService'] testruns = test_data['testruns'] logger = Logger('IntegTest') topics_dict = config_dict.get('topics', {}) manager = TopicManager(None, topics_dict, logger) on_message = utils.get_callback(payload, config_dict, manager, logger) for testrun in testruns: for topics in testrun['messages']: for topic in topics: topic_info = topics[topic] utils.send_msg(utils.send_direct_msg, payload, on_message, topic, topic_info) records = [] for queue in manager.queues: for data in manager.get_data(queue): if data: records.append(data) else: break if check_results: results = testrun['results'] result = {} found = False for result in results: if 'single' in result['test']: if payload in result['payloads']: found = True break self.assertTrue(found, "No results for %s" %payload) utils.check(self, payload, records, result['records']) else: for record in records: print(record)
def runit(self, payload, file_pointer): test_data = json.load(file_pointer, object_hook=utils.byteify) config_dict = configobj.ConfigObj( test_data['config'])['MQTTSubscribeService'] testruns = test_data['testruns'] logger = Logger() topics_dict = config_dict.get('topics', {}) manager = TopicManager(topics_dict, logger) on_message = utils.get_callback(payload, config_dict, manager, logger) for testrun in testruns: start_ts = time.time() for topics in testrun['messages']: for topic in topics: topic_info = topics[topic] utils.send_msg(utils.send_direct_msg, payload, on_message, topic, topic_info) end_ts = time.time() results = testrun['results'] result = {} found = False for result in results: if 'accumulate' in result['test']: if payload in result['payloads']: found = True break self.assertTrue(found, "No results for %s" % payload) records = [] for topic in sorted( manager.subscribed_topics ): # todo - dependent on topic names - not great data = manager.get_accumulated_data(topic, start_ts, end_ts, result['units']) records.append(data) utils.check(self, payload, records, result['records'])
def test_init_console_set(): with mock.patch.dict(sys.modules, {'weeutil.logger': weeutil.logger}): import user.MQTTSubscribe if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: import importlib importlib.reload(user.MQTTSubscribe) # (only a python 2 error) pylint: disable=no-member with mock.patch('user.MQTTSubscribe.logging') as mock_logging: from user.MQTTSubscribe import Logger mock_logging._checkLevel.return_value = 0 # pylint: disable=protected-access mode = random_string() SUT = Logger(mode, console=True) SUT._logmsg.addHandler.assert_called_once() # pylint: disable=protected-access if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: importlib.reload(user.MQTTSubscribe) # (only a python 2 error) pylint: disable=no-member
def test_init_filename(self): with mock.patch.dict(sys.modules, {'weeutil.logger': None}): import user.MQTTSubscribe if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: import importlib importlib.reload(user.MQTTSubscribe) # (only a python 2 error) pylint: disable=no-member with mock.patch('user.MQTTSubscribe.logging') as mock_logging: with mock.patch('user.MQTTSubscribe.open') as mock_open: from user.MQTTSubscribe import Logger mode = random_string() filename = random_string() mock_logging._checkLevel.return_value = 0 # pylint: disable=protected-access Logger(mode, filename=filename) self.assertEqual(mock_open.call_count, 1) mock_open.assert_called_once_with(filename, 'w') if PY2: reload(user.MQTTSubscribe) # (only a python 3 error) pylint: disable=undefined-variable else: importlib.reload(user.MQTTSubscribe) # (only a python 2 error) pylint: disable=no-member