Avoid crash when git commit title cannot be found

Avoids a crash when there is no git commit title,
because e.g. called outside a git checkout.

Change-Id: Icf8e943a75b59adff51028dd2973ed34d80a4e69
This commit is contained in:
Dirk Mueller 2013-06-23 15:19:53 +02:00
parent 42494c3fb9
commit 823e9cfa4f
2 changed files with 38 additions and 1 deletions

@ -870,7 +870,7 @@ class OnceGitCheckCommitTitlePeriodEnding(GitCheck):
def run_once(self):
title = self._get_commit_title()
if title.rstrip().endswith('.'):
if title and title.rstrip().endswith('.'):
return (
1, 0,
"H803: git commit title ('%s') should not end with period"

@ -0,0 +1,37 @@
# Copyright (c) 2013 SUSE Linux Products GmbH.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import fixtures
import hacking.core
import hacking.tests
import inspect
def _fake_none_commit_title(self):
return None
class HackingGitTestCase(hacking.tests.TestCase):
def test_run_outside_git(self):
"""Verify that GitChecks don't fail if no .git available."""
with fixtures.MonkeyPatch('hacking.core.GitCheck._get_commit_title',
_fake_none_commit_title):
for name, obj in inspect.getmembers(hacking.core):
if (inspect.isclass(obj) and
isinstance(obj(None), hacking.core.GitCheck)):
obj(None).run_once()