diff options
| author | Jason Kölker <jason@koelker.net> | 2011-05-02 19:07:02 +0000 |
|---|---|---|
| committer | Tarmac <> | 2011-05-02 19:07:02 +0000 |
| commit | 05a5177662d914cbd5fac2cefc1966dfa8bc67be (patch) | |
| tree | 52d5861b34ad6102b1d898a0aafb092d94008669 | |
| parent | 42c8e73994c7d787aef0e2d97ea162ee5a2e1304 (diff) | |
| parent | 41966e6475db5da505947b816670797c0cede029 (diff) | |
| download | nova-05a5177662d914cbd5fac2cefc1966dfa8bc67be.tar.gz nova-05a5177662d914cbd5fac2cefc1966dfa8bc67be.tar.xz nova-05a5177662d914cbd5fac2cefc1966dfa8bc67be.zip | |
add support for git checking and a default of failing if the history can't be read
| -rw-r--r-- | nova/tests/test_misc.py | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/nova/tests/test_misc.py b/nova/tests/test_misc.py index 4e17e1ce0..ad62b48bf 100644 --- a/nova/tests/test_misc.py +++ b/nova/tests/test_misc.py @@ -29,11 +29,12 @@ from nova.utils import parse_mailmap, str_dict_replace class ProjectTestCase(test.TestCase): def test_authors_up_to_date(self): topdir = os.path.normpath(os.path.dirname(__file__) + '/../../') - if os.path.exists(os.path.join(topdir, '.bzr')): - contributors = set() - - mailmap = parse_mailmap(os.path.join(topdir, '.mailmap')) + missing = set() + contributors = set() + mailmap = parse_mailmap(os.path.join(topdir, '.mailmap')) + authors_file = open(os.path.join(topdir, 'Authors'), 'r').read() + if os.path.exists(os.path.join(topdir, '.bzr')): import bzrlib.workingtree tree = bzrlib.workingtree.WorkingTree.open(topdir) tree.lock_read() @@ -47,22 +48,36 @@ class ProjectTestCase(test.TestCase): for r in revs: for author in r.get_apparent_authors(): email = author.split(' ')[-1] - contributors.add(str_dict_replace(email, mailmap)) + contributors.add(str_dict_replace(email, + mailmap)) + finally: + tree.unlock() - authors_file = open(os.path.join(topdir, 'Authors'), - 'r').read() + elif os.path.exists(os.path.join(topdir, '.git')): + import git + repo = git.Repo(topdir) + for commit in repo.head.commit.iter_parents(): + email = commit.author.email + if email is None: + email = commit.author.name + if 'nova-core' in email: + continue + if email.split(' ')[-1] == '<>': + email = email.split(' ')[-2] + email = '<' + email + '>' + contributors.add(str_dict_replace(email, mailmap)) - missing = set() - for contributor in contributors: - if contributor == 'nova-core': - continue - if not contributor in authors_file: - missing.add(contributor) + else: + self.assertTrue(False, 'Cannot read commit history') - self.assertTrue(len(missing) == 0, - '%r not listed in Authors' % missing) - finally: - tree.unlock() + for contributor in contributors: + if contributor == 'nova-core': + continue + if not contributor in authors_file: + missing.add(contributor) + + self.assertTrue(len(missing) == 0, + '%r not listed in Authors' % missing) class LockTestCase(test.TestCase): |
