Добавлены тесты для всех классов
This commit is contained in:
@@ -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')
|
||||
Reference in New Issue
Block a user