Skip to content

Commit 00a3374

Browse files
committed
EditCommitMessageAction: New action
A new action for GitCommitBear when applied opens up a editor for user to edit commit message of the HEAD commit.
1 parent af3ec5f commit 00a3374

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import subprocess
2+
from coalib.results.result_actions.ResultAction import ResultAction
3+
4+
5+
class EditCommitMessageAction(ResultAction):
6+
7+
SUCCESS_MESSAGE = 'Commit message edited successfully.'
8+
9+
def apply(self, result, original_file_dict, file_diff_dict):
10+
"""
11+
Edit (C)ommit Message [Note: This may rewrite your commit history]
12+
"""
13+
subprocess.check_call(['git', 'commit', '-o', '--amend'])
14+
return file_diff_dict
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import unittest
2+
from unittest.mock import patch
3+
from coala_utils.ContextManagers import retrieve_stdout
4+
from coalib.results.Result import Result
5+
from bears.vcs.actions.EditCommitMessageAction import EditCommitMessageAction
6+
7+
8+
class EditCommitMessageActionTest(unittest.TestCase):
9+
10+
def setUp(self):
11+
self.uut = EditCommitMessageAction()
12+
self.result = Result('origin', 'message')
13+
14+
def test_is_applicable(self):
15+
self.assertTrue(self.uut.is_applicable(self.result, {}, {}))
16+
17+
def test_apply(self):
18+
with retrieve_stdout() as stdout:
19+
patcher = ('bears.vcs.actions.EditCommitMessageAction.'
20+
'subprocess.check_call')
21+
with patch(patcher):
22+
ret = self.uut.apply(self.result, {}, {'file': 'diff'})
23+
self.assertEqual(ret, {'file': 'diff'})
24+
self.assertEqual(stdout.getvalue(), '')

0 commit comments

Comments
 (0)