def test(self, mock_execute): contents = 'journal contents \xd0\xbc\xd1\x8f\xd1\x83' # That's how execute() works with binary=True if six.PY3: contents = b'journal contents \xd0\xbc\xd1\x8f\xd1\x83' else: contents = 'journal contents \xd0\xbc\xd1\x8f\xd1\x83' expected_contents = u'journal contents \u043c\u044f\u0443' mock_execute.return_value = (contents, '') data = {} with mock.patch('time.time', return_value=42): inspector.collect_logs(data, None) res = io.BytesIO(base64.b64decode(data['logs'])) with tarfile.open(fileobj=res) as tar: members = [(m.name, m.size, m.mtime) for m in tar] self.assertEqual([('journal', len(contents), 42)], members) member = tar.extractfile('journal') self.assertEqual(expected_contents, member.read().decode('utf-8')) mock_execute.assert_called_once_with('journalctl', '--full', '--no-pager', '-b', '-n', '10000', binary=True, log_stdout=False)
def test(self, mock_collect): data = {} ret = 'SpongeBob SquarePants' mock_collect.return_value = ret inspector.collect_logs(data, None) self.assertEqual({'logs': ret}, data)
def test(self, mock_execute): contents = 'journal contents \xd0\xbc\xd1\x8f\xd1\x83' # That's how execute() works with binary=True if six.PY3: contents = b'journal contents \xd0\xbc\xd1\x8f\xd1\x83' else: contents = 'journal contents \xd0\xbc\xd1\x8f\xd1\x83' expected_contents = u'journal contents \u043c\u044f\u0443' mock_execute.return_value = (contents, '') data = {} inspector.collect_logs(data, None) res = io.BytesIO(base64.b64decode(data['logs'])) with tarfile.open(fileobj=res) as tar: members = [(m.name, m.size) for m in tar] self.assertEqual([('journal', len(contents))], members) member = tar.extractfile('journal') self.assertEqual(expected_contents, member.read().decode('utf-8')) mock_execute.assert_called_once_with('journalctl', '--full', '--no-pager', '-b', '-n', '10000', binary=True)
def test(self, mock_execute): contents = 'journal contents' mock_execute.return_value = (contents, '') data = {} inspector.collect_logs(data, None) res = io.BytesIO(base64.b64decode(data['logs'])) with tarfile.open(fileobj=res) as tar: members = [(m.name, m.size) for m in tar] self.assertEqual([('journal', len(contents))], members) member = tar.extractfile('journal') self.assertEqual(contents, member.read().decode('utf-8'))
def test_fail(self, mock_collect): data = {} mock_collect.side_effect = errors.CommandExecutionError('boom') self.assertIsNone(inspector.collect_logs(data, None)) self.assertNotIn('logs', data)
def test_no_journal(self, mock_execute): mock_execute.side_effect = OSError() data = {} inspector.collect_logs(data, None) self.assertFalse(data)