bunker/test/test_files_bunkerfile.py

40 lines
855 B
Python

import os
import tarfile
from io import BytesIO
from bunker.files.bunkeredfile import BunkeredFile
def test_load_from_tar(tmpdir):
tmpdname = str(tmpdir)
with open(os.path.join(tmpdname, "a.tx"), "wb") as f:
f.write(b"abcdefg")
with open(os.path.join(tmpdname, "b.tx"), "wb") as f:
f.write(b"foobar")
f = tarfile.TarFile(os.path.join(tmpdname, "test.tar"), "w")
f.add(os.path.join(tmpdname, "a.tx"))
f.add(os.path.join(tmpdname, "b.tx"))
f.close()
f = tarfile.TarFile(os.path.join(tmpdname, "test.tar"))
ainfo = f.next()
binfo = f.next()
a = BunkeredFile.from_tar(f, ainfo)
b = BunkeredFile.from_tar(f, binfo)
assert a.read() == b"abcdefg"
assert b.read() == b"foobar"
def test_from_BytesIO():
b = BytesIO(b"foobar")
f = BunkeredFile.from_BytesIO(b, "test")
assert len(f) == len(b"foobar")
assert f.read() == b"foobar"