FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
GitPython/git/test/test_git.py at gitdbmerger · tmzullinger/GitPython · GitHub
tmzullinger
GitPython
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
GitPython
/
git
/
test
/
test_git.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
84 lines (66 loc) · 3.22 KB
Breadcrumbs
GitPython
/
git
/
test
/
test_git.py
Copy path
File metadata and controls
84 lines (66 loc) · 3.22 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
# test_git.py
# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors
#
# This module is part of GitPython and is released under
# the BSD License: http://www.opensource.org/licenses/bsd-license.php
import
os
,
sys
from
git
.
test
.
lib
import
TestBase
from
git
import
Git
,
GitCommandError
class
TestGit
(
TestCase
):
@
classmethod
def
setUpAll
(
cls
):
cls
.
git
=
Git
(
GIT_REPO
)
@
patch_object
(
Git
,
'execute'
)
def
test_call_process_calls_execute
(
self
,
git
):
git
.
return_value
=
''
self
.
git
.
version
()
assert_true
(
git
.
called
)
assert_equal
(
git
.
call_args
, (([
'git'
,
'version'
],), {}))
@
raises
(
GitCommandError
)
def
test_it_raises_errors
(
self
):
self
.
git
.
this_does_not_exist
()
def
test_it_transforms_kwargs_into_git_command_arguments
(
self
):
assert_equal
([
"-s"
],
self
.
git
.
transform_kwargs
(
**
{
's'
:
True
}))
assert_equal
([
"-s5"
],
self
.
git
.
transform_kwargs
(
**
{
's'
:
5
}))
assert_equal
([
"--max-count"
],
self
.
git
.
transform_kwargs
(
**
{
'max_count'
:
True
}))
assert_equal
([
"--max-count=5"
],
self
.
git
.
transform_kwargs
(
**
{
'max_count'
:
5
}))
assert_equal
([
"-s"
,
"-t"
],
self
.
git
.
transform_kwargs
(
**
{
's'
:
True
,
't'
:
True
}))
def
test_it_executes_git_to_shell_and_returns_result
(
self
):
assert_match
(
'^git version [\d\.]{2}.*$'
,
self
.
git
.
execute
([
"git"
,
"version"
]))
def
test_it_accepts_stdin
(
self
):
filename
=
fixture_path
(
"cat_file_blob"
)
fh
=
open
(
filename
,
'r'
)
assert_equal
(
"70c379b63ffa0795fdbfbc128e5a2818397b7ef8"
,
self
.
git
.
hash_object
(
istream
=
fh
,
stdin
=
True
))
fh
.
close
()
@
patch_object
(
Git
,
'execute'
)
def
test_it_ignores_false_kwargs
(
self
,
git
):
# this_should_not_be_ignored=False implies it *should* be ignored
output
=
self
.
git
.
version
(
pass_this_kwarg
=
False
)
assert_true
(
"pass_this_kwarg"
not
in
git
.
call_args
[
1
])
def
test_persistent_cat_file_command
(
self
):
# read header only
import
subprocess
as
sp
hexsha
=
"b2339455342180c7cc1e9bba3e9f181f7baa5167"
g
=
self
.
git
.
cat_file
(
batch_check
=
True
,
istream
=
sp
.
PIPE
,
as_process
=
True
)
g
.
stdin
.
write
(
"b2339455342180c7cc1e9bba3e9f181f7baa5167
\n
"
)
g
.
stdin
.
flush
()
obj_info
=
g
.
stdout
.
readline
()
# read header + data
g
=
self
.
git
.
cat_file
(
batch
=
True
,
istream
=
sp
.
PIPE
,
as_process
=
True
)
g
.
stdin
.
write
(
"b2339455342180c7cc1e9bba3e9f181f7baa5167
\n
"
)
g
.
stdin
.
flush
()
obj_info_two
=
g
.
stdout
.
readline
()
assert
obj_info
==
obj_info_two
# read data - have to read it in one large chunk
size
=
int
(
obj_info
.
split
()[
2
])
data
=
g
.
stdout
.
read
(
size
)
terminating_newline
=
g
.
stdout
.
read
(
1
)
# now we should be able to read a new object
g
.
stdin
.
write
(
"b2339455342180c7cc1e9bba3e9f181f7baa5167
\n
"
)
g
.
stdin
.
flush
()
assert
g
.
stdout
.
readline
()
==
obj_info
# same can be achived using the respective command functions
hexsha
,
typename
,
size
=
self
.
git
.
get_object_header
(
hexsha
)
hexsha
,
typename_two
,
size_two
,
data
=
self
.
git
.
get_object_data
(
hexsha
)
assert
typename
==
typename_two
and
size
==
size_two
Back
|
FazBrowse Home
|
New Git URL