- Notifications
You must be signed in to change notification settings - Fork68
Expand file tree
/
Copy pathtest_git.py
More file actions
53 lines (43 loc) · 1.76 KB
/
test_git.py
File metadata and controls
53 lines (43 loc) · 1.76 KB
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
# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors
#
# This module is part of GitDB and is released under
# the New BSD License: https://opensource.org/license/bsd-3-clause/
importos
fromgitdb.test.db.libimport (
TestDBBase,
with_rw_directory
)
fromgitdb.excimportBadObject
fromgitdb.dbimportGitDB
fromgitdb.baseimportOStream,OInfo
fromgitdb.utilimportbin_to_hex
classTestGitDB(TestDBBase):
deftest_reading(self):
gdb=GitDB(os.path.join(self.gitrepopath,'objects'))
# we have packs and loose objects, alternates doesn't necessarily exist
assert1<len(gdb.databases())<4
# access should be possible
gitdb_sha=next(gdb.sha_iter())
assertisinstance(gdb.info(gitdb_sha),OInfo)
assertisinstance(gdb.stream(gitdb_sha),OStream)
ni=50
assertgdb.size()>=ni
sha_list=list(gdb.sha_iter())
assertlen(sha_list)==gdb.size()
sha_list=sha_list[:ni]# speed up tests ...
# This is actually a test for compound functionality, but it doesn't
# have a separate test module
# test partial shas
# this one as uneven and quite short
gitdb_sha_hex=bin_to_hex(gitdb_sha)
assertgdb.partial_to_complete_sha_hex(gitdb_sha_hex[:5])==gitdb_sha
# mix even/uneven hexshas
fori,binshainenumerate(sha_list):
assertgdb.partial_to_complete_sha_hex(bin_to_hex(binsha)[:8- (i%2)])==binsha
# END for each sha
self.assertRaises(BadObject,gdb.partial_to_complete_sha_hex,"0000")
@with_rw_directory
deftest_writing(self,path):
gdb=GitDB(path)
# its possible to write objects
self._assert_object_writing(gdb)