Добавлены тесты для всех классов

This commit is contained in:
Ilia Miheev
2026-04-30 00:41:27 +03:00
parent 4db335f399
commit d1b1fd8e0b
7 changed files with 511 additions and 0 deletions
+87
View File
@@ -0,0 +1,87 @@
import zipfile
import pytest
from ipars import ZipManager
def test_zipfile_creates_archive(tmp_path):
zm = ZipManager()
source = tmp_path / 'hello.txt'
source.write_text('hello world')
zip_path = str(tmp_path / 'output.zip')
zm.zipFile(str(source), zip_path)
assert (tmp_path / 'output.zip').exists()
with zipfile.ZipFile(zip_path, 'r') as zf:
assert 'hello.txt' in zf.namelist()
def test_zipfile_content_is_correct(tmp_path):
zm = ZipManager()
source = tmp_path / 'data.txt'
source.write_text('test content')
zip_path = str(tmp_path / 'output.zip')
zm.zipFile(str(source), zip_path)
with zipfile.ZipFile(zip_path, 'r') as zf:
content = zf.read('data.txt').decode('utf-8')
assert content == 'test content'
def test_zipfolder_creates_archive(tmp_path):
zm = ZipManager()
folder = tmp_path / 'myfolder'
folder.mkdir()
(folder / 'a.txt').write_text('aaa')
(folder / 'b.txt').write_text('bbb')
zip_path = str(tmp_path / 'folder.zip')
zm.zipFolder(str(folder), zip_path)
assert (tmp_path / 'folder.zip').exists()
with zipfile.ZipFile(zip_path, 'r') as zf:
names = zf.namelist()
assert any('a.txt' in n for n in names)
assert any('b.txt' in n for n in names)
def test_zipfolder_nested(tmp_path):
zm = ZipManager()
folder = tmp_path / 'root'
folder.mkdir()
sub = folder / 'sub'
sub.mkdir()
(sub / 'deep.txt').write_text('deep')
zip_path = str(tmp_path / 'nested.zip')
zm.zipFolder(str(folder), zip_path)
with zipfile.ZipFile(zip_path, 'r') as zf:
names = zf.namelist()
assert any('deep.txt' in n for n in names)
def test_set_compression_none():
zm = ZipManager('none')
assert zm.compression == zipfile.ZIP_STORED
def test_set_compression_normal():
zm = ZipManager('normal')
assert zm.compression == zipfile.ZIP_DEFLATED
def test_set_compression_hard():
zm = ZipManager('hard')
assert zm.compression == zipfile.ZIP_BZIP2
def test_set_compression_maximum():
zm = ZipManager('maximum')
assert zm.compression == zipfile.ZIP_LZMA
def test_invalid_compression_raises():
with pytest.raises(ValueError):
ZipManager('ultra')