Files
hassio-addons-avm/hassio-google-drive-backup/tests/test_file.py

61 lines
1.5 KiB
Python

from backup.file import File
from os.path import exists, join
from os import remove
import pytest
import json
TEST_DATA = "when you press my special key I play a little melody"
def readfile(path):
with open(path) as f:
return f.read()
@pytest.mark.asyncio
async def test_basic(tmpdir: str) -> None:
path = join(tmpdir, "test.json")
backup_path = join(tmpdir, "test.json.backup")
assert not File.exists(path)
File.write(path, TEST_DATA)
assert File.exists(path)
assert readfile(path) == TEST_DATA
assert readfile(backup_path) == TEST_DATA
assert File.read(path) == TEST_DATA
File.delete(path)
assert not exists(path)
assert not exists(backup_path)
assert not File.exists(path)
@pytest.mark.asyncio
async def test_file_deleted(tmpdir: str) -> None:
path = join(tmpdir, "test.json")
File.write(path, TEST_DATA)
remove(path)
assert File.read(path) == TEST_DATA
@pytest.mark.asyncio
async def test_backup_deleted(tmpdir: str) -> None:
path = join(tmpdir, "test.json")
backup_path = join(tmpdir, "test.json.backup")
File.write(path, TEST_DATA)
remove(backup_path)
assert File.read(path) == TEST_DATA
@pytest.mark.asyncio
async def test_decode_error(tmpdir: str) -> None:
path = join(tmpdir, "test.json")
File.write(path, TEST_DATA)
with open(path, "w"):
# emptys the file contents
pass
with open(path) as f:
assert len(f.read()) == 0
assert File.read(path) == TEST_DATA