beeref/tests/fileio/test_init.py

87 lines
3.1 KiB
Python
Raw Permalink Normal View History

import os.path
import tempfile
2021-04-13 15:08:23 +00:00
from unittest.mock import MagicMock, patch
from PyQt6 import QtCore
from beeref import fileio
2021-04-13 15:08:23 +00:00
from beeref import commands
2021-05-31 16:11:45 +00:00
from ..utils import queue2list
@patch('beeref.fileio.sql.SQLiteIO.write')
2021-04-13 15:08:23 +00:00
def test_save_bee_create_new_false(write_mock):
with tempfile.TemporaryDirectory() as dirname:
fname = os.path.join(dirname, 'test.bee')
2021-04-13 15:08:23 +00:00
fileio.save_bee(fname, 'myscene', create_new=False)
write_mock.assert_called_once()
@patch('beeref.fileio.sql.SQLiteIO.read')
2021-04-13 15:08:23 +00:00
def test_read_bee(read_mock):
with tempfile.TemporaryDirectory() as dirname:
fname = os.path.join(dirname, 'test.bee')
2021-04-13 15:08:23 +00:00
fileio.load_bee(fname, 'myscene')
read_mock.assert_called_once()
2021-04-13 15:08:23 +00:00
2021-05-31 16:11:45 +00:00
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('', [])
2021-07-14 19:24:22 +00:00
itemdata = queue2list(view.scene.items_to_add)
assert len(itemdata) == 1
item = itemdata[0][0]['item']
2021-05-31 16:11:45 +00:00
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)
2021-04-13 15:08:23 +00:00
2021-05-31 16:11:45 +00:00
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('', [])
2021-07-14 19:24:22 +00:00
itemdata = queue2list(view.scene.items_to_add)
assert len(itemdata) == 1
item = itemdata[0][0]['item']
2021-05-31 16:11:45 +00:00
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)
2021-04-13 15:08:23 +00:00
2021-05-31 16:11:45 +00:00
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'])
2021-07-14 19:24:22 +00:00
itemdata = queue2list(view.scene.items_to_add)
assert len(itemdata) == 1
item = itemdata[0][0]['item']
2021-05-31 16:11:45 +00:00
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)