test_GitVfs.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # vim: set fileencoding=utf-8 :
  2. """
  3. Test L{gbp.git.GitVfs}
  4. """
  5. import gbp.log
  6. from . import context
  7. gbp.log.setup(color=False, verbose=True)
  8. def test_read():
  9. """
  10. Create a repository
  11. Methods tested:
  12. - L{gbp.git.GitVfs.open}
  13. - L{gbp.git.GitVfs._File.readline}
  14. - L{gbp.git.GitVfs._File.readlines}
  15. - L{gbp.git.GitVfs._File.read}
  16. - L{gbp.git.GitVfs._File.close}
  17. >>> import os, gbp.git.vfs
  18. >>> repo_dir = context.new_tmpdir(__name__)
  19. >>> repo = gbp.git.GitRepository.create(str(repo_dir))
  20. >>> f = open(os.path.join(repo.path, 'foo.txt'), 'w')
  21. >>> content = 'al pha\\na\\nb\\nc'
  22. >>> ret = f.write('al pha\\na\\nb\\nc')
  23. >>> f.close()
  24. >>> repo.add_files(repo.path, force=True)
  25. >>> repo.commit_all(msg="foo")
  26. >>> vfs = gbp.git.vfs.GitVfs(repo, 'HEAD')
  27. >>> gf = vfs.open('foo.txt')
  28. >>> gf.readline()
  29. 'al pha\\n'
  30. >>> gf.readline()
  31. 'a\\n'
  32. >>> gf.readlines()
  33. ['b\\n', 'c']
  34. >>> gf.readlines()
  35. []
  36. >>> gf.readline()
  37. ''
  38. >>> gf.readline()
  39. ''
  40. >>> gf.close()
  41. >>> gbp.git.vfs.GitVfs(repo, 'HEAD').open('foo.txt').read() == content
  42. True
  43. >>> gf = vfs.open('doesnotexist')
  44. Traceback (most recent call last):
  45. ...
  46. IOError: can't get HEAD:doesnotexist: fatal: Path 'doesnotexist' does not exist in 'HEAD'
  47. >>> context.teardown()
  48. """