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"