def test_debian_commands(self):
        """Test default BTS command extraction that is applicable to Debian"""
        options = OptionsStub()
        lines = """This is a test commit

Closes: bug#12345
Closes: 456
"""
        bugs, dummy = extract_bts_cmds(lines.split("\n"), options)
        self.assertEquals(bugs, {"Closes": ["bug#12345", "456"]})
    def test_debian_commands(self):
        """Test default BTS command extraction that is applicable to Debian"""
        options = OptionsStub()
        lines = """This is a test commit

Closes: bug#12345
Closes: 456
"""
        bugs, dummy = extract_bts_cmds(lines.split('\n'), options)
        self.assertEquals(bugs, {'Closes': ['bug#12345', '456']})
    def test_nondebian_commands(self):
        """Test non-default BTS commands. We use the example given in the
        documentation manpages."""
        options = OptionsStub()
        options.meta_closes_bugnum = "(?:bug)?\s*ex-\d+"
        lines = """This is a test commit
some more lines...

Closes: bug EX-12345
Closes: ex-01273
Closes: bug ex-1ab
Closes: EX--12345
"""
        bugs, dummy = extract_bts_cmds(lines.split("\n"), options)
        self.assertEquals(bugs, {"Closes": ["bug EX-12345", "ex-01273", "bug ex-1"]})
    def test_nondebian_commands(self):
        """Test non-default BTS commands. We use the example given in the
        documentation manpages."""
        options = OptionsStub()
        options.meta_closes_bugnum = r'(?:bug)?\s*ex-\d+'
        lines = """This is a test commit
some more lines...

Closes: bug EX-12345
Closes: ex-01273
Closes: bug ex-1ab
Closes: EX--12345
"""
        bugs, dummy = extract_bts_cmds(lines.split('\n'), options)
        self.assertEquals(bugs,
                          {'Closes': ['bug EX-12345', 'ex-01273', 'bug ex-1']})
Пример #5
0
def format_series_diff(added, removed, options):
    """
    Format the patch differences into a suitable commit message

    >>> format_series_diff(['a'], ['b'], None)
    'Rediff patches\\n\\nAdd a: <REASON>\\nDrop b: <REASON>\\n'
    """
    if len(added) == 1 and not removed:
        # Single patch added, create a more thorough commit message
        patch = Patch(os.path.join('debian', 'patches', added[0]))
        msg = patch.subject
        bugs, dummy = extract_bts_cmds(patch.long_desc.split('\n'), options)
        if bugs:
            msg += '\n'
            for k, v in bugs.items():
                msg += '\n%s: %s' % (k, ', '.join(v))
    else:
        msg = "Rediff patches\n\n"
        for p in added:
            msg += 'Add %s: <REASON>\n' % p
        for p in removed:
            msg += 'Drop %s: <REASON>\n' % p
    return msg
Пример #6
0
def format_series_diff(added, removed, options):
    """
    Format the patch differences into a suitable commit message

    >>> format_series_diff(['a'], ['b'], None)
    'Rediff patches\\n\\nAdded a: <REASON>\\nDropped b: <REASON>\\n'
    """
    if len(added) == 1 and not removed:
        # Single patch added, create a more thorough commit message
        patch = Patch(os.path.join('debian', 'patches', added[0]))
        msg = patch.subject
        bugs, dummy = extract_bts_cmds(patch.long_desc.split('\n'), options)
        if bugs:
            msg += '\n'
            for k, v in bugs.items():
                msg += '\n%s: %s' % (k, ', '.join(v))
    else:
        msg = "Rediff patches\n\n"
        for p in added:
            msg += 'Added %s: <REASON>\n' % p
        for p in removed:
            msg += 'Dropped %s: <REASON>\n' % p
    return msg