kompress.kopen improvements
- tests - uniform handling for bytes/str, always return utf8 str by default
This commit is contained in:
parent
c3a77b6256
commit
8b8a85e8c3
7 changed files with 52 additions and 24 deletions
|
@ -3,8 +3,9 @@ from subprocess import check_call
|
|||
import gzip
|
||||
import lzma
|
||||
import io
|
||||
import zipfile
|
||||
|
||||
from my.kython.kompress import kopen
|
||||
from my.kython.kompress import kopen, kexists
|
||||
|
||||
|
||||
import pytest # type: ignore
|
||||
|
@ -15,6 +16,8 @@ def prepare(tmp_path: Path):
|
|||
with (tmp_path / 'file.xz').open('wb') as f:
|
||||
with lzma.open(f, 'w') as lzf:
|
||||
lzf.write(b'compressed text')
|
||||
with zipfile.ZipFile(tmp_path / 'file.zip', 'w') as zf:
|
||||
zf.writestr('path/in/archive', 'data in zip')
|
||||
try:
|
||||
yield None
|
||||
finally:
|
||||
|
@ -24,12 +27,18 @@ def prepare(tmp_path: Path):
|
|||
def test_kopen(prepare, tmp_path: Path) -> None:
|
||||
"Plaintext handled transparently"
|
||||
assert kopen(tmp_path / 'file' ).read() == 'just plaintext'
|
||||
assert kopen(tmp_path / 'file.xz').read() == b'compressed text' # FIXME make this str
|
||||
assert kopen(tmp_path / 'file.xz').read() == 'compressed text'
|
||||
|
||||
"For zips behaviour is a bit different (not sure about all this, tbh...)"
|
||||
assert kopen(tmp_path / 'file.zip', 'path/in/archive').read() == 'data in zip'
|
||||
|
||||
|
||||
def test_kexists(tmp_path: Path) -> None:
|
||||
# TODO
|
||||
raise RuntimeError
|
||||
def test_kexists(prepare, tmp_path: Path) -> None:
|
||||
assert kexists(str(tmp_path / 'file.zip'), 'path/in/archive')
|
||||
assert not kexists(str(tmp_path / 'file.zip'), 'path/notin/archive')
|
||||
|
||||
# TODO not sure about this?
|
||||
assert not kexists(tmp_path / 'nosuchzip.zip', 'path/in/archive')
|
||||
|
||||
|
||||
def test_cpath():
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
# ugh. workaround for https://github.com/pytest-dev/pytest/issues/1927
|
||||
from my.reddit import *
|
||||
|
||||
# TODO for reddit test, patch up to take every 10th archive or something; but make sure it's deterministic
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue