@@ -1041,3 +1041,70 @@ def test_status(
1041
1041
assert staged ["modify" ] == ["foo" ]
1042
1042
assert unstaged == ["bar" ]
1043
1043
assert untracked == expected_untracked
1044
+
1045
+
1046
+ @pytest .mark .skip_git_backend ("pygit2" )
1047
+ def test_is_dirty_empty (
1048
+ tmp_dir : TmpDir ,
1049
+ scm : Git ,
1050
+ git : Git ,
1051
+ ):
1052
+ assert not git .is_dirty ()
1053
+
1054
+
1055
+ @pytest .mark .skip_git_backend ("pygit2" )
1056
+ def test_is_dirty_added (
1057
+ tmp_dir : TmpDir ,
1058
+ scm : Git ,
1059
+ git : Git ,
1060
+ ):
1061
+ tmp_dir .gen ("foo" , "foo" )
1062
+ scm .add ("foo" )
1063
+
1064
+ assert git .is_dirty ()
1065
+ scm .commit ("commit" )
1066
+ assert not git .is_dirty ()
1067
+
1068
+
1069
+ @pytest .mark .skip_git_backend ("pygit2" )
1070
+ def test_is_dirty_modified (
1071
+ tmp_dir : TmpDir ,
1072
+ scm : Git ,
1073
+ git : Git ,
1074
+ ):
1075
+ tmp_dir .gen ("foo" , "foo" )
1076
+ scm .add_commit ("foo" , message = "add foo" )
1077
+
1078
+ tmp_dir .gen ("foo" , "modified" )
1079
+ assert git .is_dirty ()
1080
+ scm .add_commit ("foo" , message = "modified" )
1081
+ assert not git .is_dirty ()
1082
+
1083
+
1084
+ @pytest .mark .skip_git_backend ("pygit2" )
1085
+ def test_is_dirty_deleted (
1086
+ tmp_dir : TmpDir ,
1087
+ scm : Git ,
1088
+ git : Git ,
1089
+ ):
1090
+ tmp_dir .gen ("foo" , "foo" )
1091
+ scm .add_commit ("foo" , message = "add foo" )
1092
+
1093
+ assert not git .is_dirty ()
1094
+ os .unlink (tmp_dir / "foo" )
1095
+ assert git .is_dirty ()
1096
+ scm .add ("foo" )
1097
+ assert git .is_dirty ()
1098
+ scm .commit ("deleted" )
1099
+ assert not git .is_dirty ()
1100
+
1101
+
1102
+ @pytest .mark .skip_git_backend ("pygit2" )
1103
+ def test_is_dirty_untracked (
1104
+ tmp_dir : TmpDir ,
1105
+ scm : Git ,
1106
+ git : Git ,
1107
+ ):
1108
+ tmp_dir .gen ("untracked" , "untracked" )
1109
+ assert git .is_dirty (untracked_files = True )
1110
+ assert not git .is_dirty (untracked_files = False )
0 commit comments