mirror of
https://github.com/thegeeklab/ansible-later.git
synced 2024-11-26 23:00:36 +00:00
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
# 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: http://www.opensource.org/licenses/bsd-license.php
|
|
"""Module with examples from the tutorial section of the docs"""
|
|
import os
|
|
from gitdb.test.lib import TestBase
|
|
from gitdb import IStream
|
|
from gitdb.db import LooseObjectDB
|
|
|
|
from io import BytesIO
|
|
|
|
|
|
class TestExamples(TestBase):
|
|
|
|
def test_base(self):
|
|
ldb = LooseObjectDB(os.path.join(self.gitrepopath, 'objects'))
|
|
|
|
for sha1 in ldb.sha_iter():
|
|
oinfo = ldb.info(sha1)
|
|
ostream = ldb.stream(sha1)
|
|
assert oinfo[:3] == ostream[:3]
|
|
|
|
assert len(ostream.read()) == ostream.size
|
|
assert ldb.has_object(oinfo.binsha)
|
|
# END for each sha in database
|
|
# assure we close all files
|
|
try:
|
|
del(ostream)
|
|
del(oinfo)
|
|
except UnboundLocalError:
|
|
pass
|
|
# END ignore exception if there are no loose objects
|
|
|
|
data = "my data".encode("ascii")
|
|
istream = IStream("blob", len(data), BytesIO(data))
|
|
|
|
# the object does not yet have a sha
|
|
assert istream.binsha is None
|
|
ldb.store(istream)
|
|
# now the sha is set
|
|
assert len(istream.binsha) == 20
|
|
assert ldb.has_object(istream.binsha)
|