Fix tests
All checks were successful
Python CI / test (push) Successful in 1m23s
Lint / lint (push) Successful in 1m21s
Tests / test (3.10) (push) Successful in 1m2s
Tests / test (3.11) (push) Successful in 1m2s
Tests / test (3.9) (push) Successful in 58s

This commit is contained in:
Duncan Tourolle 2025-11-22 00:14:33 +01:00
parent eca6d43e6a
commit 353b0c4aff
2 changed files with 42 additions and 78 deletions

View File

@ -220,7 +220,7 @@ class TestDropEvent:
# Should not create any elements
assert len(page.layout.elements) == 0
def test_drop_updates_existing_placeholder(self, qtbot):
def test_drop_updates_existing_placeholder(self, qtbot, tmp_path):
"""Test dropping on existing placeholder updates it with image"""
widget = TestAssetDropWidget()
qtbot.addWidget(widget)
@ -229,6 +229,10 @@ class TestDropEvent:
widget.update = Mock()
# Create a real test image file
test_image = tmp_path / "test_image.jpg"
test_image.write_bytes(b'\xFF\xD8\xFF\xE0' + b'\x00' * 100) # Minimal JPEG header
# Setup project with page containing placeholder
mock_window = Mock()
mock_window.project = Project(name="Test")
@ -253,7 +257,7 @@ class TestDropEvent:
widget._get_element_at = Mock(return_value=placeholder)
mime_data = QMimeData()
mime_data.setUrls([QUrl.fromLocalFile("/path/to/image.jpg")])
mime_data.setUrls([QUrl.fromLocalFile(str(test_image))])
event = Mock()
event.mimeData = Mock(return_value=mime_data)
@ -265,7 +269,8 @@ class TestDropEvent:
# Should replace placeholder with ImageData
assert len(page.layout.elements) == 1
assert isinstance(page.layout.elements[0], ImageData)
assert page.layout.elements[0].image_path == "/path/to/image.jpg"
# Image path should now be in assets folder (imported)
assert page.layout.elements[0].image_path.startswith("assets/")
@patch('pyPhotoAlbum.mixins.asset_drop.AddElementCommand')
def test_drop_multiple_files(self, mock_cmd_class, qtbot):

View File

@ -22,6 +22,13 @@ class TestViewWindow(ViewOperationsMixin, QMainWindow):
self.gl_widget.height = Mock(return_value=600)
self.project = Mock(spec=Project)
self.project.working_dpi = 300
# Add snapping attributes
self.project.snap_to_grid = False
self.project.snap_to_edges = True
self.project.snap_to_guides = True
self.project.show_snap_lines = True
self.project.grid_size_mm = 10.0
self.project.snap_threshold_mm = 5.0
self._update_view_called = False
self._status_message = None
@ -125,15 +132,11 @@ class TestSnappingToggles:
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.snapping_system.snap_to_grid = False
page = Mock()
page.layout = layout
window._current_page = page
window.project.snap_to_grid = False
window.toggle_grid_snap()
assert layout.snapping_system.snap_to_grid is True
assert window.project.snap_to_grid is True
assert "enabled" in window._status_message.lower()
assert window._update_view_called
@ -141,15 +144,11 @@ class TestSnappingToggles:
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.snapping_system.snap_to_grid = True
page = Mock()
page.layout = layout
window._current_page = page
window.project.snap_to_grid = True
window.toggle_grid_snap()
assert layout.snapping_system.snap_to_grid is False
assert window.project.snap_to_grid is False
assert "disabled" in window._status_message.lower()
assert window._update_view_called
@ -157,7 +156,7 @@ class TestSnappingToggles:
window = TestViewWindow()
qtbot.addWidget(window)
window._current_page = None
window.project = None
window.toggle_grid_snap()
@ -167,15 +166,11 @@ class TestSnappingToggles:
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.snapping_system.snap_to_edges = False
page = Mock()
page.layout = layout
window._current_page = page
window.project.snap_to_edges = False
window.toggle_edge_snap()
assert layout.snapping_system.snap_to_edges is True
assert window.project.snap_to_edges is True
assert "enabled" in window._status_message.lower()
assert window._update_view_called
@ -183,75 +178,55 @@ class TestSnappingToggles:
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.snapping_system.snap_to_edges = True
page = Mock()
page.layout = layout
window._current_page = page
window.project.snap_to_edges = True
window.toggle_edge_snap()
assert layout.snapping_system.snap_to_edges is False
assert window.project.snap_to_edges is False
assert "disabled" in window._status_message.lower()
def test_toggle_guide_snap_enable(self, qtbot):
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.snapping_system.snap_to_guides = False
page = Mock()
page.layout = layout
window._current_page = page
window.project.snap_to_guides = False
window.toggle_guide_snap()
assert layout.snapping_system.snap_to_guides is True
assert window.project.snap_to_guides is True
assert "enabled" in window._status_message.lower()
def test_toggle_guide_snap_disable(self, qtbot):
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.snapping_system.snap_to_guides = True
page = Mock()
page.layout = layout
window._current_page = page
window.project.snap_to_guides = True
window.toggle_guide_snap()
assert layout.snapping_system.snap_to_guides is False
assert window.project.snap_to_guides is False
assert "disabled" in window._status_message.lower()
def test_toggle_snap_lines_show(self, qtbot):
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.show_snap_lines = False
page = Mock()
page.layout = layout
window._current_page = page
window.project.show_snap_lines = False
window.toggle_snap_lines()
assert layout.show_snap_lines is True
assert window.project.show_snap_lines is True
assert "visible" in window._status_message.lower()
def test_toggle_snap_lines_hide(self, qtbot):
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.show_snap_lines = True
page = Mock()
page.layout = layout
window._current_page = page
window.project.show_snap_lines = True
window.toggle_snap_lines()
assert layout.show_snap_lines is False
assert window.project.show_snap_lines is False
assert "hidden" in window._status_message.lower()
@ -355,11 +330,11 @@ class TestGridSettingsDialog:
"""Test grid settings dialog"""
def test_set_grid_size_no_page(self, qtbot):
"""Test set_grid_size with no current page"""
"""Test set_grid_size with no project"""
window = TestViewWindow()
qtbot.addWidget(window)
window._current_page = None
window.project = None
window.set_grid_size()
@ -396,61 +371,45 @@ class TestLayoutTabDelegation:
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.snapping_system.snap_to_grid = False
page = Mock()
page.layout = layout
window._current_page = page
window.project.snap_to_grid = False
window.layout_toggle_grid_snap()
# Should delegate to toggle_grid_snap
assert layout.snapping_system.snap_to_grid is True
assert window.project.snap_to_grid is True
assert window._update_view_called
def test_layout_toggle_edge_snap_delegates(self, qtbot):
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.snapping_system.snap_to_edges = False
page = Mock()
page.layout = layout
window._current_page = page
window.project.snap_to_edges = False
window.layout_toggle_edge_snap()
assert layout.snapping_system.snap_to_edges is True
assert window.project.snap_to_edges is True
assert window._update_view_called
def test_layout_toggle_guide_snap_delegates(self, qtbot):
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.snapping_system.snap_to_guides = False
page = Mock()
page.layout = layout
window._current_page = page
window.project.snap_to_guides = False
window.layout_toggle_guide_snap()
assert layout.snapping_system.snap_to_guides is True
assert window.project.snap_to_guides is True
assert window._update_view_called
def test_layout_toggle_snap_lines_delegates(self, qtbot):
window = TestViewWindow()
qtbot.addWidget(window)
layout = PageLayout()
layout.show_snap_lines = False
page = Mock()
page.layout = layout
window._current_page = page
window.project.show_snap_lines = False
window.layout_toggle_snap_lines()
assert layout.show_snap_lines is True
assert window.project.show_snap_lines is True
assert window._update_view_called
def test_layout_set_grid_size_delegates(self, qtbot):