FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
GitPython/git/test/test_reflog.py at no_devnull_open · Nicals/GitPython · GitHub
Nicals
GitPython
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
GitPython
/
git
/
test
/
test_reflog.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
107 lines (85 loc) · 3.42 KB
Breadcrumbs
GitPython
/
git
/
test
/
test_reflog.py
Copy path
File metadata and controls
107 lines (85 loc) · 3.42 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
import
os
import
tempfile
from
git
.
objects
import
IndexObject
from
git
.
refs
import
(
RefLogEntry
,
RefLog
)
from
git
.
test
.
lib
import
(
TestBase
,
fixture_path
)
from
git
.
util
import
Actor
,
rmtree
,
hex_to_bin
import
os
.
path
as
osp
class
TestRefLog
(
TestBase
):
def
test_reflogentry
(
self
):
nullhexsha
=
IndexObject
.
NULL_HEX_SHA
hexsha
=
'F'
*
40
actor
=
Actor
(
'name'
,
'email'
)
msg
=
"message"
self
.
failUnlessRaises
(
ValueError
,
RefLogEntry
.
new
,
nullhexsha
,
hexsha
,
'noactor'
,
0
,
0
,
""
)
e
=
RefLogEntry
.
new
(
nullhexsha
,
hexsha
,
actor
,
0
,
1
,
msg
)
assert
e
.
oldhexsha
==
nullhexsha
assert
e
.
newhexsha
==
hexsha
assert
e
.
actor
==
actor
assert
e
.
time
[
0
]
==
0
assert
e
.
time
[
1
]
==
1
assert
e
.
message
==
msg
# check representation (roughly)
assert
repr
(
e
).
startswith
(
nullhexsha
)
def
test_base
(
self
):
rlp_head
=
fixture_path
(
'reflog_HEAD'
)
rlp_master
=
fixture_path
(
'reflog_master'
)
tdir
=
tempfile
.
mktemp
(
suffix
=
"test_reflogs"
)
os
.
mkdir
(
tdir
)
rlp_master_ro
=
RefLog
.
path
(
self
.
rorepo
.
head
)
assert
osp
.
isfile
(
rlp_master_ro
)
# simple read
reflog
=
RefLog
.
from_file
(
rlp_master_ro
)
assert
reflog
.
_path
is
not
None
assert
isinstance
(
reflog
,
RefLog
)
assert
len
(
reflog
)
# iter_entries works with path and with stream
assert
len
(
list
(
RefLog
.
iter_entries
(
open
(
rlp_master
,
'rb'
))))
assert
len
(
list
(
RefLog
.
iter_entries
(
rlp_master
)))
# raise on invalid revlog
# TODO: Try multiple corrupted ones !
pp
=
'reflog_invalid_'
for
suffix
in
(
'oldsha'
,
'newsha'
,
'email'
,
'date'
,
'sep'
):
self
.
failUnlessRaises
(
ValueError
,
RefLog
.
from_file
,
fixture_path
(
pp
+
suffix
))
# END for each invalid file
# cannot write an uninitialized reflog
self
.
failUnlessRaises
(
ValueError
,
RefLog
().
write
)
# test serialize and deserialize - results must match exactly
binsha
=
hex_to_bin
((
'f'
*
40
).
encode
(
'ascii'
))
msg
=
"my reflog message"
cr
=
self
.
rorepo
.
config_reader
()
for
rlp
in
(
rlp_head
,
rlp_master
):
reflog
=
RefLog
.
from_file
(
rlp
)
tfile
=
osp
.
join
(
tdir
,
osp
.
basename
(
rlp
))
reflog
.
to_file
(
tfile
)
assert
reflog
.
write
()
is
reflog
# parsed result must match ...
treflog
=
RefLog
.
from_file
(
tfile
)
assert
treflog
==
reflog
# ... as well as each bytes of the written stream
assert
open
(
tfile
).
read
()
==
open
(
rlp
).
read
()
# append an entry
entry
=
RefLog
.
append_entry
(
cr
,
tfile
,
IndexObject
.
NULL_BIN_SHA
,
binsha
,
msg
)
assert
entry
.
oldhexsha
==
IndexObject
.
NULL_HEX_SHA
assert
entry
.
newhexsha
==
'f'
*
40
assert
entry
.
message
==
msg
assert
RefLog
.
from_file
(
tfile
)[
-
1
]
==
entry
# index entry
# raises on invalid index
self
.
failUnlessRaises
(
IndexError
,
RefLog
.
entry_at
,
rlp
,
10000
)
# indices can be positive ...
assert
isinstance
(
RefLog
.
entry_at
(
rlp
,
0
),
RefLogEntry
)
RefLog
.
entry_at
(
rlp
,
23
)
# ... and negative
for
idx
in
(
-
1
,
-
24
):
RefLog
.
entry_at
(
rlp
,
idx
)
# END for each index to read
# END for each reflog
# finally remove our temporary data
rmtree
(
tdir
)
Back
|
FazBrowse Home
|
New Git URL