FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
GitPython/test/git/test_tree.py at 0.2 · og-python-scripts/GitPython · GitHub
og-python-scripts
GitPython
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
GitPython
/
test
/
git
/
test_tree.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
66 lines (53 loc) · 2.25 KB
Breadcrumbs
GitPython
/
test
/
git
/
test_tree.py
Copy path
File metadata and controls
66 lines (53 loc) · 2.25 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
# test_tree.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
from
test
.
testlib
import
*
from
git
import
*
class
TestTree
(
TestCase
):
def
setUp
(
self
):
self
.
repo
=
Repo
(
GIT_REPO
)
def
test_traverse
(
self
):
root
=
self
.
repo
.
tree
(
'0.1.6'
)
num_recursive
=
0
all_items
=
list
()
for
obj
in
root
.
traverse
():
if
"/"
in
obj
.
path
:
num_recursive
+=
1
assert
isinstance
(
obj
, (
Blob
,
Tree
))
all_items
.
append
(
obj
)
# END for each object
# limit recursion level to 0 - should be same as default iteration
assert
all_items
assert
'CHANGES'
in
root
assert
len
(
list
(
root
))
==
len
(
list
(
root
.
traverse
(
depth
=
1
)))
# only choose trees
trees_only
=
lambda
i
,
d
:
i
.
type
==
"tree"
trees
=
list
(
root
.
traverse
(
predicate
=
trees_only
))
assert
len
(
trees
)
==
len
(
list
(
i
for
i
in
root
.
traverse
()
if
trees_only
(
i
,
0
) ))
# test prune
lib_folder
=
lambda
t
,
d
:
t
.
path
==
"lib"
pruned_trees
=
list
(
root
.
traverse
(
predicate
=
trees_only
,
prune
=
lib_folder
))
assert
len
(
pruned_trees
)
<
len
(
trees
)
# trees and blobs
assert
len
(
set
(
trees
)
|
set
(
root
.
trees
))
==
len
(
trees
)
assert
len
(
set
(
b
for
b
in
root
if
isinstance
(
b
,
Blob
))
|
set
(
root
.
blobs
))
==
len
(
root
.
blobs
)
subitem
=
trees
[
0
][
0
]
assert
"/"
in
subitem
.
path
assert
subitem
.
name
==
os
.
path
.
basename
(
subitem
.
path
)
# assure that at some point the traversed paths have a slash in them
found_slash
=
False
for
item
in
root
.
traverse
():
assert
os
.
path
.
isabs
(
item
.
abspath
)
if
'/'
in
item
.
path
:
found_slash
=
True
# END check for slash
# slashes in paths are supported as well
assert
root
[
item
.
path
]
==
item
==
root
/
item
.
path
# END for each item
assert
found_slash
def
test_repr
(
self
):
tree
=
Tree
(
self
.
repo
,
'abc'
)
assert_equal
(
'<git.Tree "abc">'
,
repr
(
tree
))
Back
|
FazBrowse Home
|
New Git URL