@@ -196,6 +196,11 @@ def test_commit_from_pre_commit_msg_hook(config, mocker, capsys):
196196 "footer" : "" ,
197197 }
198198
199+ is_blank_commit_file_mock = mocker .patch (
200+ "commitizen.commands.commit.Commit.is_blank_commit_file"
201+ )
202+ is_blank_commit_file_mock .return_value = True
203+
199204 commit_mock = mocker .patch ("commitizen.git.commit" )
200205 commit_mock .return_value = cmd .Command ("success" , "" , "" , "" , 0 )
201206
@@ -209,3 +214,52 @@ def test_commit_from_pre_commit_msg_hook(config, mocker, capsys):
209214 out , _ = capsys .readouterr ()
210215 assert "Commit message is successful!" in out
211216 commit_mock .assert_not_called ()
217+
218+
219+ def test_commit_with_msg_from_pre_commit_msg_hook (config , mocker , capsys ):
220+ testargs = ["cz" , "commit" , "--commit-msg-file" , "some_file" ]
221+ mocker .patch .object (sys , "argv" , testargs )
222+
223+ prompt_mock = mocker .patch ("questionary.prompt" )
224+ prompt_mock .return_value = {
225+ "prefix" : "feat" ,
226+ "subject" : "user created" ,
227+ "scope" : "" ,
228+ "is_breaking_change" : False ,
229+ "body" : "" ,
230+ "footer" : "" ,
231+ }
232+
233+ is_blank_commit_file_mock = mocker .patch (
234+ "commitizen.commands.commit.Commit.is_blank_commit_file"
235+ )
236+ is_blank_commit_file_mock .return_value = False
237+
238+ commit_mock = mocker .patch ("commitizen.git.commit" )
239+ commit_mock .return_value = cmd .Command ("success" , "" , "" , "" , 0 )
240+
241+ cli .main ()
242+
243+ prompt_mock .assert_not_called ()
244+ commit_mock .assert_not_called ()
245+
246+
247+ @pytest .mark .parametrize (
248+ "isexist, commitmsg, returnvalue" ,
249+ [
250+ [False , "" , True ],
251+ [True , "\n #test" , True ],
252+ [True , "test: test\n #test" , False ],
253+ [True , "#test: test\n #test" , True ],
254+ ],
255+ )
256+ def test_is_blank_commit_file (config , mocker , isexist , commitmsg , returnvalue ):
257+ exists_mock = mocker .patch ("commitizen.commands.commit.exists" )
258+ exists_mock .return_value = isexist
259+
260+ reader_mock = mocker .mock_open (read_data = commitmsg )
261+ mocker .patch ("builtins.open" , reader_mock )
262+
263+ commit_cmd = commands .Commit (config , {})
264+ ret = commit_cmd .is_blank_commit_file ("test" )
265+ assert ret == returnvalue
0 commit comments