mirror of
https://github.com/rbreu/beeref.git
synced 2026-03-11 08:54:28 +00:00
83 lines
2.7 KiB
Python
83 lines
2.7 KiB
Python
from unittest.mock import MagicMock, patch
|
|
|
|
from PyQt6 import QtCore, QtWidgets
|
|
|
|
from beeref.view import BeeGraphicsView
|
|
from beeref.widgets.welcome_overlay import (
|
|
RecentFilesModel,
|
|
RecentFilesView,
|
|
WelcomeOverlay,
|
|
)
|
|
|
|
|
|
def test_recent_files_model_rowcount(view):
|
|
model = RecentFilesModel(['foo.png', 'bar.png'])
|
|
assert model.rowCount(None) == 2
|
|
|
|
|
|
def test_recent_files_model_data_diplayrole(view):
|
|
model = RecentFilesModel(['foo.png', 'bar.png'])
|
|
index = MagicMock()
|
|
index.row.return_value = 1
|
|
assert model.data(index, QtCore.Qt.ItemDataRole.DisplayRole) == 'bar.png'
|
|
|
|
|
|
def test_recent_files_model_data_fontrole(view):
|
|
model = RecentFilesModel(['foo.png', 'bar.png'])
|
|
index = MagicMock()
|
|
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_widget) < 0
|
|
|
|
|
|
def test_recent_files_view_size_hint(qapp):
|
|
parent = QtWidgets.QMainWindow()
|
|
files_view = RecentFilesView(parent, None)
|
|
|
|
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)
|
|
|
|
|
|
def test_recent_files_view_on_click(qapp):
|
|
parent = QtWidgets.QMainWindow()
|
|
view = BeeGraphicsView(qapp, parent)
|
|
view.open_from_file = MagicMock()
|
|
overlay = WelcomeOverlay(view)
|
|
overlay.files_view.update_files(['foo.bee', 'bar.bee'])
|
|
overlay.files_view.on_clicked(
|
|
RecentFilesModel(
|
|
['foo.bee', 'bar.bee']).createIndex(1, 0))
|
|
view.open_from_file.assert_called_once_with('bar.bee')
|
|
|
|
|
|
@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_widget) == 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()
|