summaryrefslogtreecommitdiff
path: root/gitdb/test/db
diff options
context:
space:
mode:
Diffstat (limited to 'gitdb/test/db')
-rw-r--r--gitdb/test/db/lib.py10
-rw-r--r--gitdb/test/db/test_git.py3
-rw-r--r--gitdb/test/db/test_pack.py10
3 files changed, 17 insertions, 6 deletions
diff --git a/gitdb/test/db/lib.py b/gitdb/test/db/lib.py
index 528bcc1..d7365ea 100644
--- a/gitdb/test/db/lib.py
+++ b/gitdb/test/db/lib.py
@@ -39,7 +39,7 @@ class TestDBBase(TestBase):
# data
two_lines = b'1234\nhello world'
- all_data = (two_lines, )
+ all_data = (two_lines,)
def _assert_object_writing_simple(self, db):
# write a bunch of objects and query their streams and info
@@ -56,10 +56,10 @@ class TestDBBase(TestBase):
assert isinstance(info, OInfo)
assert info.type == istream.type and info.size == istream.size
- stream = db.stream(istream.binsha)
- assert isinstance(stream, OStream)
- assert stream.binsha == info.binsha and stream.type == info.type
- assert stream.read() == data
+ with db.stream(istream.binsha) as stream:
+ assert isinstance(stream, OStream)
+ assert stream.binsha == info.binsha and stream.type == info.type
+ assert stream.read() == data
# END for each item
assert db.size() == null_objs + ni
diff --git a/gitdb/test/db/test_git.py b/gitdb/test/db/test_git.py
index acc0f15..b637c13 100644
--- a/gitdb/test/db/test_git.py
+++ b/gitdb/test/db/test_git.py
@@ -24,7 +24,8 @@ class TestGitDB(TestDBBase):
# access should be possible
gitdb_sha = next(gdb.sha_iter())
assert isinstance(gdb.info(gitdb_sha), OInfo)
- assert isinstance(gdb.stream(gitdb_sha), OStream)
+ with gdb.stream(gitdb_sha) as stream:
+ assert isinstance(gdb.stream(gitdb_sha), OStream)
ni = 50
assert gdb.size() >= ni
sha_list = list(gdb.sha_iter())
diff --git a/gitdb/test/db/test_pack.py b/gitdb/test/db/test_pack.py
index b361a59..f7e631e 100644
--- a/gitdb/test/db/test_pack.py
+++ b/gitdb/test/db/test_pack.py
@@ -13,10 +13,16 @@ from gitdb.exc import BadObject, AmbiguousObjectName
import os
import random
+from gitdb.util import mman, HIDE_WINDOWS_KNOWN_ERRORS
class TestPackDB(TestDBBase):
+ ## Unless HIDE_WINDOWS_KNOWN_ERRORS, on Windows fails with:
+ # File "D:\Work\gitdb.git\gitdb\test\db\test_pack.py", line 41, in test_writing
+ # os.rename(pack_path, new_pack_path)
+ # PermissionError: [WinError 32] The process cannot access the file
+ # because it is being used by another process: 'pack-c0438c19fb16422b6bbcce24387b3264416d485b.packrenamed'
@with_rw_directory
@with_packs_rw
def test_writing(self, path):
@@ -30,6 +36,10 @@ class TestPackDB(TestDBBase):
# packs removed - rename a file, should affect the glob
pack_path = pdb.entities()[0].pack().path()
new_pack_path = pack_path + "renamed"
+ ## FIXME: Had to manually collect leaked files!!
+ if HIDE_WINDOWS_KNOWN_ERRORS:
+ leaked_mmaps = mman.collect()
+ self.assertEqual(leaked_mmaps, 6)
os.rename(pack_path, new_pack_path)
pdb.update_cache(force=True)