summaryrefslogtreecommitdiffstats
path: root/meta/lib/patchtest/tests/test_mbox_shortlog.py
blob: f5dbbc7807b41780534d545ef94f367feb7fe683 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Checks related to the patch's  summary
#
# Copyright (C) 2016 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only

import base
import parse_shortlog
import pyparsing

maxlength = 90

class Shortlog(base.Base):

    def test_shortlog_format(self):
        for commit in Shortlog.commits:
            shortlog = commit.shortlog
            if not shortlog.strip():
                self.skip('Empty shortlog, no reason to execute shortlog format test')
            else:
                # no reason to re-check on revert shortlogs
                if shortlog.startswith('Revert "'):
                    continue
                try:
                    parse_shortlog.shortlog.parseString(shortlog)
                except pyparsing.ParseException as pe:
                    self.fail('Commit shortlog (first line of commit message) should follow the format "<target>: <summary>"',
                              commit=commit)

    def test_shortlog_length(self):
        for commit in Shortlog.commits:
            # no reason to re-check on revert shortlogs
            shortlog = commit.shortlog
            if shortlog.startswith('Revert "'):
                continue
            l = len(shortlog)
            if l > maxlength:
                self.fail('Edit shortlog so that it is %d characters or less (currently %d characters)' % (maxlength, l),
                          commit=commit)