From 8fd5ec31272984a7fcff628c50b4c22d7e4107ec Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Mon, 8 Apr 2013 10:20:23 +0200 Subject: Add minimal vfs interface so we can access blobs in git as file like objects --- tests/test_GitVfs.py | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 tests/test_GitVfs.py (limited to 'tests/test_GitVfs.py') diff --git a/tests/test_GitVfs.py b/tests/test_GitVfs.py new file mode 100644 index 0000000..c4e2694 --- /dev/null +++ b/tests/test_GitVfs.py @@ -0,0 +1,55 @@ +# vim: set fileencoding=utf-8 : + +""" +Test L{gbp.git.GitVfs} +""" + +import os +import gbp.log + +from . import context + +gbp.log.setup(color=False, verbose=True) + +def test_read(): + repo_dir = context.new_tmpdir(__name__) + """ + Create a repository + + Methods tested: + - L{gbp.git.GitVfs.open} + - L{gbp.git._File.readline} + - L{gbp.git._File.readlines} + - L{gbp.git._File.read} + - L{gbp.git._File.close} + + >>> import os, gbp.git.vfs + >>> repo = gbp.git.GitRepository.create(str(repo_dir)) + >>> f = file(os.path.join(repo.path, 'foo.txt'), 'w') + >>> content = 'al pha\\na\\nb\\nc' + >>> f.write('al pha\\na\\nb\\nc') + >>> f.close() + >>> repo.add_files(repo.path, force=True) + >>> repo.commit_all(msg="foo") + >>> vfs = gbp.git.vfs.GitVfs(repo, 'HEAD') + >>> gf = vfs.open('foo.txt') + >>> gf.readline() + 'al pha\\n' + >>> gf.readline() + 'a\\n' + >>> gf.readlines() + ['b\\n', 'c'] + >>> gf.readlines() + [] + >>> gf.readline() + '' + >>> gf.readline() + '' + >>> gbp.git.vfs.GitVfs(repo, 'HEAD').open('foo.txt').read() == content + True + >>> gf = vfs.open('doesnotexist') + Traceback (most recent call last): + ... + IOError: can't get HEAD:doesnotexist: fatal: Path 'doesnotexist' does not exist in 'HEAD' + >>> context.teardown() + """ -- cgit v1.2.3