FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
git2cpp/test/test_commit.py at main · QuantStack/git2cpp · GitHub
QuantStack
git2cpp
Repository navigation
Code
Issues
6
(6)
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
git2cpp
/
test
/
test_commit.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
125 lines (97 loc) · 4.4 KB
Breadcrumbs
git2cpp
/
test
/
test_commit.py
Copy path
File metadata and controls
125 lines (97 loc) · 4.4 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import
subprocess
import
pytest
from
.
conftest
import
GIT2CPP_TEST_WASM
@
pytest
.
mark
.
parametrize
(
"all_flag"
, [
""
,
"-A"
,
"--all"
,
"--no-ignore-removal"
])
def
test_commit
(
commit_env_config
,
git2cpp_path
,
tmp_path
,
all_flag
):
cmd_init
=
[
git2cpp_path
,
"init"
,
"."
]
p_init
=
subprocess
.
run
(
cmd_init
,
capture_output
=
True
,
cwd
=
tmp_path
)
assert
p_init
.
returncode
==
0
p
=
tmp_path
/
"mook_file.txt"
p
.
write_text
(
""
)
cmd_add
=
[
git2cpp_path
,
"add"
,
"mook_file.txt"
]
p_add
=
subprocess
.
run
(
cmd_add
,
cwd
=
tmp_path
,
text
=
True
)
assert
p_add
.
returncode
==
0
cmd_status
=
[
git2cpp_path
,
"status"
,
"--long"
]
p_status
=
subprocess
.
run
(
cmd_status
,
capture_output
=
True
,
cwd
=
tmp_path
,
text
=
True
)
assert
p_status
.
returncode
==
0
assert
"Changes to be committed"
in
p_status
.
stdout
assert
"new file"
in
p_status
.
stdout
cmd_commit
=
[
git2cpp_path
,
"commit"
,
"-m"
,
"test commit"
]
p_commit
=
subprocess
.
run
(
cmd_commit
,
cwd
=
tmp_path
,
text
=
True
)
assert
p_commit
.
returncode
==
0
cmd_status_2
=
[
git2cpp_path
,
"status"
,
"--long"
]
p_status_2
=
subprocess
.
run
(
cmd_status_2
,
capture_output
=
True
,
cwd
=
tmp_path
,
text
=
True
)
assert
p_status_2
.
returncode
==
0
assert
"mook_file"
not
in
p_status_2
.
stdout
@
pytest
.
mark
.
parametrize
(
"commit_msg_in,commit_msg_out"
,
[
(
"Added file"
,
"Added file"
),
(
""
,
""
),
(
"ab
\x7f
c"
,
"ac"
),
# Check deletes previous character to prove using stdin line buffering
],
)
def
test_commit_message_via_stdin
(
commit_env_config
,
git2cpp_path
,
tmp_path
,
run_in_tmp_path
,
commit_msg_in
,
commit_msg_out
):
if
not
GIT2CPP_TEST_WASM
and
commit_msg_in
!=
commit_msg_out
:
pytest
.
skip
(
"Skip stdin delete test if not using webassembly"
)
cmd
=
[
git2cpp_path
,
"init"
,
"."
]
p_init
=
subprocess
.
run
(
cmd
)
assert
p_init
.
returncode
==
0
(
tmp_path
/
"file.txt"
).
write_text
(
"Some text"
)
cmd_add
=
[
git2cpp_path
,
"add"
,
"file.txt"
]
p_add
=
subprocess
.
run
(
cmd_add
)
assert
p_add
.
returncode
==
0
cmd_commit
=
[
git2cpp_path
,
"commit"
]
p_commit
=
subprocess
.
run
(
cmd_commit
,
text
=
True
,
capture_output
=
True
,
input
=
commit_msg_in
+
"
\n
"
)
if
commit_msg_out
==
""
:
# No commit message
assert
p_commit
.
returncode
!=
0
assert
"Aborting, no commit message specified"
in
p_commit
.
stderr
else
:
# Valid commit message
assert
p_commit
.
returncode
==
0
cmd_log
=
[
git2cpp_path
,
"log"
]
p_log
=
subprocess
.
run
(
cmd_log
,
text
=
True
,
capture_output
=
True
)
assert
p_log
.
returncode
==
0
lines
=
p_log
.
stdout
.
splitlines
()
assert
"commit"
in
lines
[
0
]
assert
"Author:"
in
lines
[
1
]
assert
"Date"
in
lines
[
2
]
assert
commit_msg_out
in
lines
[
4
]
def
test_commit_no_changes_initial
(
commit_env_config
,
git2cpp_path
,
tmp_path
):
"""Commit on fresh repo with no staged files should fail"""
cmd_init
=
[
git2cpp_path
,
"init"
,
"."
]
p_init
=
subprocess
.
run
(
cmd_init
,
capture_output
=
True
,
cwd
=
tmp_path
)
assert
p_init
.
returncode
==
0
# Do NOT add any files — attempt to commit immediately
cmd_commit
=
[
git2cpp_path
,
"commit"
,
"-m"
,
"empty commit"
]
p_commit
=
subprocess
.
run
(
cmd_commit
,
capture_output
=
True
,
cwd
=
tmp_path
,
text
=
True
)
# Should fail: nothing to commit
assert
p_commit
.
returncode
!=
0
assert
"nothing to commit"
in
p_commit
.
stderr
or
"nothing to commit"
in
p_commit
.
stdout
def
test_commit_no_changes_after_first_commit
(
commit_env_config
,
git2cpp_path
,
tmp_path
):
"""Commit twice without changes between commits should fail"""
cmd_init
=
[
git2cpp_path
,
"init"
,
"."
]
p_init
=
subprocess
.
run
(
cmd_init
,
capture_output
=
True
,
cwd
=
tmp_path
)
assert
p_init
.
returncode
==
0
# Create and commit a file
(
tmp_path
/
"file.txt"
).
write_text
(
"hello"
)
subprocess
.
run
([
git2cpp_path
,
"add"
,
"file.txt"
],
cwd
=
tmp_path
,
check
=
True
)
p_first
=
subprocess
.
run
(
[
git2cpp_path
,
"commit"
,
"-m"
,
"first commit"
],
cwd
=
tmp_path
,
capture_output
=
True
,
text
=
True
)
assert
p_first
.
returncode
==
0
# Try to commit again without any new changes
p_second
=
subprocess
.
run
(
[
git2cpp_path
,
"commit"
,
"-m"
,
"second commit (no changes)"
],
cwd
=
tmp_path
,
capture_output
=
True
,
text
=
True
,
)
# Should fail: nothing to commit
assert
p_second
.
returncode
!=
0
assert
"nothing to commit"
in
p_second
.
stderr
or
"nothing to commit"
in
p_second
.
stdout
Back
|
FazBrowse Home
|
New Git URL