40 lines
853 B
Python
40 lines
853 B
Python
import os
|
|
import tarfile
|
|
from io import BytesIO
|
|
from bunker.files.bunkerfile 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"
|
|
|
|
|