def test_d_name(self): """ method: test get_type_name """ # 'R', 0, '06:00:00' ,'17:00:00', sut = logger.Sensor('id-1', 'Door', 'somewhere', 19, 'R', 0, '06:00:00', '17:00:00', ['closed', 'open'], None, logger.ConsoleLogger(), None) self.assertEqual('Door', sut.get_type_name())
def test_r_name(self): """ method: test get_type_name """ # Refrig-116,Refrig,116,21,N,0,00:00:00,23:59:59,ok|alarm sut = logger.Sensor('id-1', 'Refrig', 'somewhere', 19, 'N', 1, '06:00:00', '23:59:59', ['ok', 'alarm'], None, logger.ConsoleLogger(), None) self.assertEqual('Refrig', sut.get_type_name())
def test_r_sensor_log_2(self): """ method: test of log error """ sut = logger.Sensor('id-3', 'X', 'somewhere', 19, 'R', 1, '06:00:00', '17:00:00', ['ok', 'alarm'], None, logger.ConsoleLogger(), None) cnt = sut.log(2) self.assertEqual(1, cnt)
def test_sql_err_file_retry_mock(self, mock_os, mock_path): # ): """ test method: tests of sql logger write """ from unittest.mock import patch with patch("pyodbc.connect") as mock_connect: # Set-up mock_connect.return_value.cursor.return_value.rowcount.return_value = 1 # m_open = mock_open() mock_path.return_value = True # 2019-01-17 14:10:24,id-3,Sensor-19,somewhere,OK,OK: Sensor-19 at location: somewhere is no pwr # LogDate, [Key], [Type], [Location], Status, Msg file_content_mock = '\n'.join([ '2018-01-01,Key1,Door,room,OK,OK: message data', '2018-01-01,Key2,Light,room,OK,OK: message data' ]) # Act with patch("builtins.open", new=mock_open(read_data=file_content_mock), create=True) as m_open: m_open.return_value.__iter__.return_value = file_content_mock.splitlines( ) self.sql_logger.sql_connection('mock connection string') sensor = logger.Sensor('key1', 'Door', 'somewhere', 12, 'R', 0, '06:00:00', '17:00:00', ['closed', 'open'], None, self.sql_logger, None) count = self.sql_logger.sql_err_file_retry() m_open.assert_called_once_with('door_light_sql_err.log', 'r') self.assertEqual(2, count)
def test_r_valid_log_msg_2(self): """ method: test of log error """ sut = logger.Sensor('id-3', 'X', 'somewhere', 19, 'R', 1, '06:00:00', '17:00:00', ['ok', 'alarm'], None, logger.ConsoleLogger(), None) log = sut.sensor.log('2018-12-12 09:59:22', sut.key, sut.location, sut.gpio, 2) self.assertEqual(True, sut.valid_log_msg(log))
def test_sensor_d_display(self): """ method: test of display """ sut = logger.Sensor('id-1', 'Door', 'somewhere', 19, 'R', 0, '06:00:00', '17:00:00', ['closed', 'open'], None, logger.ConsoleLogger(), None) display = sut.display() self.assertEqual( 'Sensor - id: id-1, type: Door, loc: somewhere, gpio: 19', display)
def test_r_log_2(self): """ method: test of log error """ sut = logger.Sensor('id-3', 'X', 'somewhere', 19, 'N', 0, '06:00:00', '17:00:00', ['ok', 'alarm'], None, logger.ConsoleLogger(), None) log = sut.sensor.log('2018-12-12 09:59:22', sut.key, sut.location, sut.gpio, 2).split(',') self.assertEqual('Warning', log[4]) self.assertEqual('Sensor bad i/o: 2', log[5])
def test_sensor_d_misc(self): """ method: test misc property values """ sut = logger.Sensor('id-1', 'Door', 'somewhere', 19, 'R', 0, '06:00:00', '17:00:00', ['closed', 'open'], None, logger.ConsoleLogger(), None) self.assertEqual('id-1', sut.key) self.assertEqual('Door', sut.type) self.assertEqual('somewhere', sut.location) self.assertEqual(19, sut.gpio)
def test_l_log_2(self): """ method: test of log error """ sut = logger.Sensor('id-2', 'Light', 'somewhere', 19, 'R', 1, '06:00:00', '17:00:00', ['off', 'on'], None, logger.ConsoleLogger(), None) log = sut.sensor.log('2018-12-12 05:59:22', sut.key, sut.location, sut.gpio, 2).split(',') self.assertEqual('id-2', log[1]) self.assertEqual('Light', log[2]) self.assertEqual('somewhere', log[3]) self.assertEqual('Sensor bad i/o: 2', log[5])
def test_d_log_2(self): """ method: test of log error """ sut = logger.Sensor('id-1', 'Door', 'somewhere', 19, 'R', 0, '06:00:00', '17:00:00', ['closed', 'open'], None, logger.ConsoleLogger(), None) log = sut.sensor.log('2018-12-12 05:59:22', sut.key, sut.location, sut.gpio, 2).split(',') self.assertEqual('id-1', log[1]) self.assertEqual('Door', log[2]) self.assertEqual('somewhere', log[3]) self.assertEqual('Warning', log[4]) self.assertEqual('Sensor bad i/o: 2', log[5])
def test_d_log_0(self): """ method: test of log """ sut = logger.Sensor('id-1', 'Door', 'somewhere', 19, 'R', 0, '06:00:00', '17:00:00', ['closed', 'open'], None, logger.ConsoleLogger(), None) log = sut.sensor.log('2018-12-12 06:59:22', sut.key, sut.location, sut.gpio, 0).split(',') self.assertEqual('id-1', log[1]) self.assertEqual('Door', log[2]) self.assertEqual('somewhere', log[3]) self.assertEqual('OK', log[4]) self.assertEqual('OK: Door at location: somewhere is closed', log[5])
def test_r_log_0(self): """ method: test of log """ sut = logger.Sensor('id-3', 'Refrig', 'somewhere', 19, 'N', 0, '06:00:00', '23:59:59', ['ok', 'alarm'], None, logger.ConsoleLogger(), None) log = sut.sensor.log('2018-12-12 05:59:22', sut.key, sut.location, sut.gpio, 0).split(',') self.assertEqual('id-3', log[1]) self.assertEqual('Refrig', log[2]) self.assertEqual('somewhere', log[3]) self.assertEqual('OK', log[4]) self.assertEqual('OK: Refrig at location: somewhere is ok', log[5])
def test_d_range_warning(self): """ method: test get_type_settings """ sut = logger.Sensor('id-1', 'Door', 'somewhere', 19, 'R', 0, '08:00:00', '17:00:00', ['closed', 'open'], None, logger.ConsoleLogger(), None) log = sut.sensor.log('2018-12-12 07:49:22', sut.key, sut.location, sut.gpio, 1).split(',') print(log[5]) self.assertEqual('Warning', log[4]) log = sut.sensor.log('2018-12-12 07:49:22', sut.key, sut.location, sut.gpio, 0).split(',') print(log[5]) self.assertEqual('OK', log[4])
def test_l_log_0(self): """ method: test of log """ sut = logger.Sensor('id-2', 'Light', 'somewhere', 19, 'R', 1, '06:00:00', '17:00:00', ['off', 'on'], None, logger.ConsoleLogger(), None) log = sut.sensor.log('2018-12-12 05:59:22', sut.key, sut.location, sut.gpio, 0).split(',') self.assertEqual('id-2', log[1]) self.assertEqual('Light', log[2]) self.assertEqual('somewhere', log[3]) self.assertEqual('Warning', log[4]) self.assertEqual('Warning: Light at location: somewhere is off', log[5])
def test_write_log(self): """ test method: tests of file logger write """ m_open = mock_open() # patch target = 'package.module.ClassName' with patch('builtins.open', m_open): sut = logger.FileLogger('') sensor = logger.Sensor('key1', 'Door', 'somewhere', 12, 'R', 0, '06:00:00', '17:00:00', ['closed', 'open'], None, sut, None) sut.write_log(sensor.log(1)) m_open.assert_called_with(sut.log_name, 'a') handle = m_open() self.assertEqual(handle.write.call_count, 4)
def test_write_log_new_day_set_log_name(self): """ test method: tests of file logger constructor """ m_open = mock_open() # patch target = 'package.module.ClassName' with patch('builtins.open', m_open): sut = logger.FileLogger('') current_log_name = sut.log_name d = Date.today() - TimeDelta(days=1) sut.set_log_name(Date.today() - TimeDelta(days=1)) self.assertNotEquals(current_log_name, sut.log_name) sensor = logger.Sensor('key1', 'Door', 'somewhere', 12, 'R', 0, '06:00:00', '17:00:00', ['closed', 'open'], None, sut, None) sut.write_log(sensor.log(1)) m_open.assert_called_with(current_log_name, 'a')
def test_write_log(self): """ test method: tests of sql logger write """ input_file = Path(self.sql_logger.err_file_name) if input_file.exists(): os.remove(self.sql_logger.err_file_name) from unittest.mock import patch with patch("pyodbc.connect") as mock_connect: # Set-up mock_connect.return_value.cursor.return_value.rowcount.return_value = 1 # Act self.sql_logger.sql_connection('mock connection string') sensor = logger.Sensor('key1', 'Door', 'somewhere', 12, 'R', 0, '06:00:00', '17:00:00', ['closed', 'open'], None, self.sql_logger, None) count = sensor.log(1) self.assertEqual(1, count)
def test_l_settings(self): """ method: test get_type_settings """ sut = logger.Sensor('id-1', 'Light', 'somewhere', 19, 'R', 1, '06:00:00', '17:00:00', ['off', 'on'], None, logger.ConsoleLogger(), None) self.assertEqual(['off', 'on'], sut.get_type_settings())
def test_r_valid_log_msg_bad(self): """ method: test of log error """ sut = logger.Sensor('id-3', 'X', 'somewhere', 19, 'R', 1, '06:00:00', '17:00:00', ['ok', 'alarm'], None, logger.ConsoleLogger(), None) self.assertEqual(False, sut.valid_log_msg('2018-12-12,K,N,L,S'))
def test_r_u_settings(self): """ method: test get_type_settings """ sut = logger.Sensor('id-1', 'R', 'somewhere', 19, 'N', 1, '06:00:00', '23:59:59', 'ok,alarm', None, logger.ConsoleLogger(), None) self.assertEqual(['no pwr', 'power'], sut.get_type_settings())