@@ -1449,3 +1449,104 @@ def test_bump_changelog_contains_increment_only(mocker, tmp_commitizen_project,
1449
1449
1450
1450
assert "3.0.0" in out
1451
1451
assert "2.0.0" not in out
1452
+
1453
+
1454
+ def test_bump_allow_no_commit_with_no_commit (mocker , tmp_commitizen_project , capsys ):
1455
+ with tmp_commitizen_project .as_cwd ():
1456
+ # Create the first commit and bump to 1.0.0
1457
+ create_file_and_commit ("feat(user)!: new file" )
1458
+ testargs = ["cz" , "bump" , "--yes" ]
1459
+ mocker .patch .object (sys , "argv" , testargs )
1460
+ cli .main ()
1461
+
1462
+ # Verify NoCommitsFoundError should be raised
1463
+ # when there's no new commit and "--allow-no-commit" is not set
1464
+ with pytest .raises (NoCommitsFoundError ):
1465
+ testargs = ["cz" , "bump" ]
1466
+ mocker .patch .object (sys , "argv" , testargs )
1467
+ cli .main ()
1468
+
1469
+ # bump to 1.0.1 with new commit when "--allow-no-commit" is set
1470
+ testargs = ["cz" , "bump" , "--allow-no-commit" ]
1471
+ mocker .patch .object (sys , "argv" , testargs )
1472
+ cli .main ()
1473
+ out , _ = capsys .readouterr ()
1474
+ assert "bump: version 1.0.0 → 1.0.1" in out
1475
+
1476
+
1477
+ def test_bump_allow_no_commit_with_no_eligible_commit (
1478
+ mocker , tmp_commitizen_project , capsys
1479
+ ):
1480
+ with tmp_commitizen_project .as_cwd ():
1481
+ # Create the first commit and bump to 1.0.0
1482
+ create_file_and_commit ("feat(user)!: new file" )
1483
+ testargs = ["cz" , "bump" , "--yes" ]
1484
+ mocker .patch .object (sys , "argv" , testargs )
1485
+ cli .main ()
1486
+
1487
+ # Create a commit that is ineligible to bump
1488
+ create_file_and_commit ("docs(bump): add description for allow no commit" )
1489
+
1490
+ # Verify NoneIncrementExit should be raised
1491
+ # when there's no eligible bumping commit and "--allow-no-commit" is not set
1492
+ with pytest .raises (NoneIncrementExit ):
1493
+ testargs = ["cz" , "bump" , "--yes" ]
1494
+ mocker .patch .object (sys , "argv" , testargs )
1495
+ cli .main ()
1496
+
1497
+ # bump to 1.0.1 with ineligible commit when "--allow-no-commit" is set
1498
+ testargs = ["cz" , "bump" , "--allow-no-commit" ]
1499
+ mocker .patch .object (sys , "argv" , testargs )
1500
+ cli .main ()
1501
+ out , _ = capsys .readouterr ()
1502
+ assert "bump: version 1.0.0 → 1.0.1" in out
1503
+
1504
+
1505
+ def test_bump_allow_no_commit_with_increment (mocker , tmp_commitizen_project , capsys ):
1506
+ with tmp_commitizen_project .as_cwd ():
1507
+ # # Create the first commit and bump to 1.0.0
1508
+ create_file_and_commit ("feat(user)!: new file" )
1509
+ testargs = ["cz" , "bump" , "--yes" ]
1510
+ mocker .patch .object (sys , "argv" , testargs )
1511
+ cli .main ()
1512
+
1513
+ # Verify NoCommitsFoundError should be raised
1514
+ # when there's no new commit and "--allow-no-commit" is not set
1515
+ with pytest .raises (NoCommitsFoundError ):
1516
+ testargs = ["cz" , "bump" , "--yes" ]
1517
+ mocker .patch .object (sys , "argv" , testargs )
1518
+ cli .main ()
1519
+
1520
+ # bump to 1.1.0 with no new commit when "--allow-no-commit" is set
1521
+ # and increment is specified
1522
+ testargs = ["cz" , "bump" , "--yes" , "--allow-no-commit" , "--increment" , "MINOR" ]
1523
+ mocker .patch .object (sys , "argv" , testargs )
1524
+ cli .main ()
1525
+ out , _ = capsys .readouterr ()
1526
+ assert "bump: version 1.0.0 → 1.1.0" in out
1527
+
1528
+
1529
+ def test_bump_allow_no_commit_with_manual_version (
1530
+ mocker , tmp_commitizen_project , capsys
1531
+ ):
1532
+ with tmp_commitizen_project .as_cwd ():
1533
+ # # Create the first commit and bump to 1.0.0
1534
+ create_file_and_commit ("feat(user)!: new file" )
1535
+ testargs = ["cz" , "bump" , "--yes" ]
1536
+ mocker .patch .object (sys , "argv" , testargs )
1537
+ cli .main ()
1538
+
1539
+ # Verify NoCommitsFoundError should be raised
1540
+ # when there's no new commit and "--allow-no-commit" is not set
1541
+ with pytest .raises (NoCommitsFoundError ):
1542
+ testargs = ["cz" , "bump" , "--yes" ]
1543
+ mocker .patch .object (sys , "argv" , testargs )
1544
+ cli .main ()
1545
+
1546
+ # bump to 1.1.0 with no new commit when "--allow-no-commit" is set
1547
+ # and increment is specified
1548
+ testargs = ["cz" , "bump" , "--yes" , "--allow-no-commit" , "2.0.0" ]
1549
+ mocker .patch .object (sys , "argv" , testargs )
1550
+ cli .main ()
1551
+ out , _ = capsys .readouterr ()
1552
+ assert "bump: version 1.0.0 → 2.0.0" in out
0 commit comments