beeref/tests/fileio/test_init.py
2021-07-28 18:33:27 +02:00

86 lines
3.1 KiB
Python

import os.path
import tempfile
from unittest.mock import MagicMock, patch
from PyQt6 import QtCore
from beeref import fileio
from beeref import commands
from ..utils import queue2list
@patch('beeref.fileio.sql.SQLiteIO.write')
def test_save_bee_create_new_false(write_mock):
with tempfile.TemporaryDirectory() as dirname:
fname = os.path.join(dirname, 'test.bee')
fileio.save_bee(fname, 'myscene', create_new=False)
write_mock.assert_called_once()
@patch('beeref.fileio.sql.SQLiteIO.read')
def test_read_bee(read_mock):
with tempfile.TemporaryDirectory() as dirname:
fname = os.path.join(dirname, 'test.bee')
fileio.load_bee(fname, 'myscene')
read_mock.assert_called_once()
def test_load_images_loads(view, imgfilename3x3):
view.scene.undo_stack = MagicMock()
worker = MagicMock(canceled=False)
fileio.load_images([imgfilename3x3],
QtCore.QPointF(5, 6), view.scene, worker)
worker.begin_processing.emit.assert_called_once_with(1)
worker.progress.emit.assert_called_once_with(0)
worker.finished.emit.assert_called_once_with('', [])
itemdata = queue2list(view.scene.items_to_add)
assert len(itemdata) == 1
item = itemdata[0][0]['item']
args = view.scene.undo_stack.push.call_args_list[0][0]
cmd = args[0]
assert isinstance(cmd, commands.InsertItems)
assert cmd.items == [item]
assert cmd.scene == view.scene
assert cmd.ignore_first_redo is True
assert item.pos() == QtCore.QPointF(3.5, 4.5)
def test_load_images_canceled(view, imgfilename3x3):
view.scene.undo_stack = MagicMock()
worker = MagicMock(canceled=True)
fileio.load_images([imgfilename3x3, imgfilename3x3],
QtCore.QPointF(5, 6), view.scene, worker)
worker.begin_processing.emit.assert_called_once_with(2)
worker.progress.emit.assert_called_once_with(0)
worker.finished.emit.assert_called_once_with('', [])
itemdata = queue2list(view.scene.items_to_add)
assert len(itemdata) == 1
item = itemdata[0][0]['item']
args = view.scene.undo_stack.push.call_args_list[0][0]
cmd = args[0]
assert isinstance(cmd, commands.InsertItems)
assert cmd.items == [item]
assert cmd.scene == view.scene
assert cmd.ignore_first_redo is True
assert item.pos() == QtCore.QPointF(3.5, 4.5)
def test_load_images_error(view, imgfilename3x3):
view.scene.undo_stack = MagicMock()
worker = MagicMock(canceled=False)
fileio.load_images(['foo.jpg', imgfilename3x3],
QtCore.QPointF(5, 6), view.scene, worker)
worker.begin_processing.emit.assert_called_once_with(2)
worker.progress.emit.assert_any_call(0)
worker.progress.emit.assert_any_call(1)
worker.finished.emit.assert_called_once_with('', ['foo.jpg'])
itemdata = queue2list(view.scene.items_to_add)
assert len(itemdata) == 1
item = itemdata[0][0]['item']
args = view.scene.undo_stack.push.call_args_list[0][0]
cmd = args[0]
assert isinstance(cmd, commands.InsertItems)
assert cmd.items == [item]
assert cmd.scene == view.scene
assert cmd.ignore_first_redo is True
assert item.pos() == QtCore.QPointF(3.5, 4.5)