Some more unit tests

This commit is contained in:
Rebecca Breu 2023-12-04 22:24:41 +01:00
parent d3f45f2e38
commit 6942c40615
2 changed files with 111 additions and 3 deletions

View file

@ -544,6 +544,54 @@ def test_on_action_cut(copy_mock, view, item):
assert view.undo_stack.isClean() is False
def test_on_action_reset_scale(view, item):
view.scene.addItem(item)
item.setScale(2)
item.setSelected(True)
view.on_action_reset_scale()
assert item.scale() == 1
def test_on_action_reset_rotation(view, item):
view.scene.addItem(item)
item.setRotation(90)
item.setSelected(True)
view.on_action_reset_rotation()
assert item.rotation() == 0
def test_on_action_reset_flip(view, item):
view.scene.addItem(item)
item.do_flip()
item.setSelected(True)
view.on_action_reset_flip()
assert item.flip() == 1
def test_on_action_reset_crop(view, item):
view.scene.addItem(item)
item.crop = QtCore.QRectF(2, 2, 10, 10)
assert item.crop == QtCore.QRectF(2, 2, 10, 10)
item.setSelected(True)
view.on_action_reset_crop()
assert item.crop == QtCore.QRectF(0, 0, 0, 0)
def test_on_action_reset_transforms(view, item):
view.scene.addItem(item)
item.crop = QtCore.QRectF(2, 2, 10, 10)
item.do_flip()
item.setRotation(90)
item.setScale(2)
assert item.crop == QtCore.QRectF(2, 2, 10, 10)
item.setSelected(True)
view.on_action_reset_transforms()
assert item.crop == QtCore.QRectF(0, 0, 0, 0)
assert item.flip() == 1
assert item.rotation() == 0
assert item.scale() == 1
@patch('PyQt6.QtWidgets.QWidget.create')
@patch('PyQt6.QtWidgets.QWidget.destroy')
@patch('PyQt6.QtWidgets.QWidget.show')
@ -619,6 +667,20 @@ def test_on_action_move_window_when_scene(cursor_mock, view):
assert view.event_start == QtCore.QPointF(10.0, 20.0)
def test_on_action_select_all(view, item):
view.scene.addItem(item)
item.setSelected(False)
view.on_action_select_all()
assert item.isSelected() is True
def test_on_action_deselect_all(view, item):
view.scene.addItem(item)
item.setSelected(True)
view.on_action_deselect_all()
assert item.isSelected() is False
def test_on_action_delete_items(view, item):
view.scene.cancel_crop_mode = MagicMock()
view.scene.addItem(item)

View file

@ -1,8 +1,13 @@
from unittest.mock import MagicMock
from unittest.mock import MagicMock, patch
from PyQt6 import QtCore
from PyQt6 import QtCore, QtWidgets
from beeref.widgets.welcome_overlay import RecentFilesModel
from beeref.view import BeeGraphicsView
from beeref.widgets.welcome_overlay import (
RecentFilesModel,
RecentFilesView,
WelcomeOverlay,
)
def test_recent_files_model_rowcount(view):
@ -23,3 +28,44 @@ def test_recent_files_model_data_fontrole(view):
index.row.return_value = 1
font = model.data(index, QtCore.Qt.ItemDataRole.FontRole)
assert font.underline() is True
@patch('beeref.widgets.welcome_overlay.BeeSettings.get_recent_files',
return_value=[])
def test_welcome_overlay_when_no_recent_files(qapp):
parent = QtWidgets.QMainWindow()
view = BeeGraphicsView(qapp, parent)
overlay = WelcomeOverlay(view)
overlay.show()
assert overlay.layout.indexOf(overlay.files_layout) < 0
def test_recent_files_view_size_hint(qapp):
parent = QtWidgets.QMainWindow()
files_view = RecentFilesView(parent)
files_view.sizeHintForRow = lambda i: 10 + i
files_view.sizeHintForColumn = lambda i: 50 + i
files_view.update_files(['foo.png', 'bar.png'])
assert files_view.sizeHint() == QtCore.QSize(53, 25)
@patch('beeref.widgets.welcome_overlay.BeeSettings.get_recent_files',
return_value=['foo.bee', 'bar.bee'])
def test_welcome_overlay_when_recent_files(qapp):
parent = QtWidgets.QMainWindow()
view = BeeGraphicsView(qapp, parent)
overlay = WelcomeOverlay(view)
overlay.show()
assert overlay.layout.indexOf(overlay.files_layout) == 0
@patch('PyQt6.QtWidgets.QGraphicsView.mousePressEvent')
def test_mouse_press_when_move_window_active(mouse_event_mock, qapp):
parent = QtWidgets.QMainWindow()
view = BeeGraphicsView(qapp, parent)
overlay = WelcomeOverlay(view)
overlay.movewin_active = True
overlay.mousePressEvent(MagicMock())
assert overlay.movewin_active is False
mouse_event_mock.assert_not_called()