Exemple #1
0
    def test_close_offload_file(self):
        logger = Logger()
        mock_file = MagicMock()
        logger._offload_file = mock_file

        logger.close_offload_file()
        mock_file.close.assert_called()
Exemple #2
0
    def test_add_issue(self, mock_write_issue, mock_open_offload_file, mock_issue):
        logger = Logger()
        any_issue = MagicMock()
        any_issue.json = '{"issue": 1}'
        any_issue.get_unique_id.return_value = 1

        mock_byte_position = 1024

        mock_write_issue.return_value = mock_byte_position

        logger.add_issue(any_issue, 'error')
        # Assert issue offload file is opened
        mock_open_offload_file.assert_called()

        # Assert issue is written to file and data count has been updated
        mock_write_issue.assert_called_with(any_issue)
        self.assertEqual(1, logger._data_msg_count['data_error'])
        self.assertEqual(logger._issues, {1: 1024})

        mocked_issue = MagicMock()
        mock_issue.from_json.return_value = mocked_issue

        mock_offload_file = MagicMock()
        logger._offload_file = mock_offload_file

        # Add the same issue again to make sure it is joined
        logger.add_issue(any_issue, 'error')
        mock_offload_file.seek.assert_has_calls([call(1024), call(0,2)])
        mock_offload_file.readline.assert_called()

        mocked_issue.join_issue.assert_called_with(any_issue)
        mock_write_issue.assert_called_with(mocked_issue)
        # Still one data error
        self.assertEqual(1, logger._data_msg_count['data_error'])

        logger = Logger()
        any_issue.get_unique_id.return_value = 1
        another_issue = MagicMock()
        another_issue.get_unique_id.return_value = 1

        logger.add_issue(any_issue, 'info')
        self.assertEqual(1, logger._data_msg_count['data_info'])

        another_issue.get_unique_id.return_value = 2
        logger.add_issue(another_issue, 'error')
        self.assertEqual(1, logger._data_msg_count['data_error'])

        logger = Logger()
        logger.add_issue(any_issue, 'info')
        self.assertEqual(1, logger._data_msg_count['data_info'])
Exemple #3
0
    def test_clear_issues(self, mock_os):
        logger = Logger()
        logger._issues = {'1': 1}
        logger._data_msg_count = {'any': 'value'}
        logger._offload_file = 'any file'
        logger._offload_filename = 'any filename'

        # Assert all variables have been cleared
        logger.clear_issues()
        self.assertEqual(logger._issues, {})
        self.assertEqual(logger._offload_file, None)
        mock_os.remove.assert_called_with('any filename')

        # Check an OSError is passed without error
        mock_os.remove.side_effect = OSError()
        logger._offload_filename = 'any non existing filename'
        logger.clear_issues()
Exemple #4
0
    def test_write_issue(self):
        logger = Logger()

        mock_issue = MagicMock()
        mock_issue.json = 'any json'

        mock_file = MagicMock()
        mock_file.tell.return_value = 'any byte offset'
        logger._offload_file = mock_file


        result = logger.write_issue(mock_issue)

        mock_file.tell.assert_called()
        mock_file.write.assert_called_with('any json\n')

        self.assertEqual(result, 'any byte offset')