From c0fc3d10069d13ca1d84276d4495d01ec47b68db Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Tue, 29 Sep 2020 19:19:05 +0300 Subject: [PATCH] Add some tests --- test/test_api.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/test/test_api.py b/test/test_api.py index 2528899..4b02b61 100644 --- a/test/test_api.py +++ b/test/test_api.py @@ -36,6 +36,16 @@ def test_bad_errs(): rarfile.RarFile("test/files/rar3-comment-plain.rar", "r", errors="foo") +def test_errors_param(): + with open("test/files/rar3-comment-plain.rar", "rb") as f: + data = f.read() + buf = io.BytesIO(data[:17]) + with rarfile.RarFile(buf, "r", errors="stop") as rf: + assert rf.namelist() == [] + with pytest.raises(rarfile.BadRarFile): + rarfile.RarFile(buf, "r", errors="strict") + + def test_bad_open_mode_w(): rf = rarfile.RarFile("test/files/rar3-comment-plain.rar") with pytest.raises(NotImplementedError): @@ -102,6 +112,16 @@ def test_detection(): assert rarfile.is_rarfile(Path("test/files/rar5-crc.rar")) is True + assert rarfile.is_rarfile("test/files/_missing_.rar") is False + + +def test_getinfo(): + with rarfile.RarFile("test/files/rar5-crc.rar") as rf: + inf = rf.getinfo("stest1.txt") + assert isinstance(inf, rarfile.RarInfo) + assert rf.getinfo(inf) is inf + with pytest.raises(rarfile.NoRarEntry): + rf.getinfo("missing.txt") def test_signature_error(): with pytest.raises(rarfile.NotRarFile): @@ -280,3 +300,14 @@ def test_rarextfile(): assert f.readable() == True assert f.readall() == rf.read(fn) + +def test_is_rarfile(): + with rarfile.RarFile("test/files/seektest.rar") as rf: + for fn in ("stest1.txt", "stest2.txt"): + with rf.open(fn) as f: + assert f.tell() == 0 + assert f.writable() == False + assert f.seekable() == True + assert f.readable() == True + assert f.readall() == rf.read(fn) + -- 2.11.4.GIT