update page selection
Python CI / test (push) Successful in 1m24s
Lint / lint (push) Successful in 1m22s
Tests / test (3.10) (push) Successful in 1m2s
Tests / test (3.11) (push) Successful in 1m3s
Tests / test (3.9) (push) Successful in 59s

This commit is contained in:
2025-11-22 08:22:01 +01:00
parent 353b0c4aff
commit ca2b3545ee
4 changed files with 89 additions and 67 deletions
+8
View File
@@ -103,12 +103,14 @@ class TestGetCurrentPage:
# Setup project with pages
project = Mock(spec=Project)
project.working_dpi = 96
page1 = Mock(spec=Page)
page2 = Mock(spec=Page)
project.pages = [page1, page2]
gl_widget = Mock()
gl_widget.current_page_index = 0
gl_widget._page_renderers = [] # No renderers, so it will use current_page_index
window._project = project
window._gl_widget = gl_widget
@@ -120,12 +122,14 @@ class TestGetCurrentPage:
qtbot.addWidget(window)
project = Mock(spec=Project)
project.working_dpi = 96
page1 = Mock(spec=Page)
page2 = Mock(spec=Page)
project.pages = [page1, page2]
gl_widget = Mock()
gl_widget.current_page_index = 1
gl_widget._page_renderers = [] # No renderers, so it will use current_page_index
window._project = project
window._gl_widget = gl_widget
@@ -158,10 +162,12 @@ class TestGetCurrentPage:
qtbot.addWidget(window)
project = Mock(spec=Project)
project.working_dpi = 96
project.pages = [Mock(spec=Page)]
gl_widget = Mock()
gl_widget.current_page_index = 5 # Out of range
gl_widget._page_renderers = [] # No renderers, so it will use current_page_index
window._project = project
window._gl_widget = gl_widget
@@ -280,10 +286,12 @@ class TestRequirePage:
qtbot.addWidget(window)
project = Mock(spec=Project)
project.working_dpi = 96
project.pages = [Mock(spec=Page)]
gl_widget = Mock()
gl_widget.current_page_index = 0
gl_widget._page_renderers = [] # No renderers, so it will use current_page_index
window._project = project
window._gl_widget = gl_widget
+13 -11
View File
@@ -5,28 +5,30 @@ Tests for PageOperationsMixin
import pytest
from unittest.mock import Mock, MagicMock, patch
from PyQt6.QtWidgets import QMainWindow
from pyPhotoAlbum.mixins.base import ApplicationStateMixin
from pyPhotoAlbum.mixins.operations.page_ops import PageOperationsMixin
from pyPhotoAlbum.project import Project, Page
from pyPhotoAlbum.page_layout import PageLayout
class TestPageOpsWindow(PageOperationsMixin, QMainWindow):
class TestPageOpsWindow(PageOperationsMixin, ApplicationStateMixin, QMainWindow):
"""Test window with page operations mixin"""
def __init__(self):
super().__init__()
self.gl_widget = Mock()
self.gl_widget.current_page_index = 0
self.gl_widget.zoom_level = 1.0
self.gl_widget.pan_offset = [0, 0]
self.gl_widget._page_renderers = []
self.gl_widget.width = Mock(return_value=800)
self.gl_widget.height = Mock(return_value=600)
self.project = Project(name="Test")
self.project.working_dpi = 96
self.project.page_size_mm = (210, 297)
self._gl_widget = Mock()
self._gl_widget.current_page_index = 0
self._gl_widget.zoom_level = 1.0
self._gl_widget.pan_offset = [0, 0]
self._gl_widget._page_renderers = []
self._gl_widget.width = Mock(return_value=800)
self._gl_widget.height = Mock(return_value=600)
self._project = Project(name="Test")
self._project.working_dpi = 96
self._project.page_size_mm = (210, 297)
self._update_view_called = False
self._status_message = None
self._status_bar = Mock()
def update_view(self):
self._update_view_called = True