Add git changelog method.
Change-Id: I71d99f00b2154bf151a1521016118ba6bd088f79
This commit is contained in:
@@ -36,10 +36,13 @@ def parse_mailmap(mailmap='.mailmap'):
|
||||
return mapping
|
||||
|
||||
|
||||
def str_dict_replace(s, mapping):
|
||||
for s1, s2 in mapping.iteritems():
|
||||
s = s.replace(s1, s2)
|
||||
return s
|
||||
def canonicalize_emails(changelog, mapping):
|
||||
""" Takes in a string and an email alias mapping and replaces all
|
||||
instances of the aliases in the string with their real email
|
||||
"""
|
||||
for alias, email in mapping.iteritems():
|
||||
changelog = changelog.replace(alias, email)
|
||||
return changelog
|
||||
|
||||
|
||||
# Get requirements from the first file that exists
|
||||
@@ -112,3 +115,13 @@ version_info = {
|
||||
'revno': %s
|
||||
}
|
||||
""" % (branch_nick, revid, revno))
|
||||
|
||||
|
||||
def write_git_changelog():
|
||||
""" Write a changelog based on the git changelog """
|
||||
if os.path.isdir('.git'):
|
||||
git_log_cmd = 'git log --stat'
|
||||
changelog = _run_shell_command(git_log_cmd)
|
||||
mailmap = parse_mailmap()
|
||||
with open("ChangeLog", "w") as changelog_file:
|
||||
changelog_file.write(canonicalize_emails(changelog, mailmap))
|
||||
|
||||
33
tests/unit/test_setup.py
Normal file
33
tests/unit/test_setup.py
Normal file
@@ -0,0 +1,33 @@
|
||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||
|
||||
# Copyright 2011 OpenStack LLC.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# 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 unittest
|
||||
|
||||
import mock
|
||||
|
||||
from openstack.common import exception
|
||||
from openstack.common import utils
|
||||
from openstack.common import setup
|
||||
|
||||
|
||||
class UtilsTest(unittest.TestCase):
|
||||
|
||||
def test_str_dict_replace(self):
|
||||
string = 'Johnnie T. Hozer'
|
||||
mapping = {'T.': 'The'}
|
||||
self.assertEqual('Johnnie The Hozer',
|
||||
setup.canonicalize_emails(string, mapping))
|
||||
@@ -23,7 +23,6 @@ import mock
|
||||
|
||||
from openstack.common import exception
|
||||
from openstack.common import utils
|
||||
from openstack.common import setup
|
||||
|
||||
|
||||
class UtilsTest(unittest.TestCase):
|
||||
@@ -108,12 +107,6 @@ class UtilsTest(unittest.TestCase):
|
||||
self.assertEqual(skynet_self_aware_time,
|
||||
utils.parse_isotime(skynet_self_aware_time_str))
|
||||
|
||||
def test_str_dict_replace(self):
|
||||
string = 'Johnnie T. Hozer'
|
||||
mapping = {'T.': 'The'}
|
||||
self.assertEqual('Johnnie The Hozer',
|
||||
setup.str_dict_replace(string, mapping))
|
||||
|
||||
def test_utcnow(self):
|
||||
utils.set_time_override(mock.sentinel.utcnow)
|
||||
self.assertEqual(utils.utcnow(), mock.sentinel.utcnow)
|
||||
|
||||
Reference in New Issue
Block a user