Fix tests
This commit is contained in:
parent
eca6d43e6a
commit
353b0c4aff
@ -220,7 +220,7 @@ class TestDropEvent:
|
|||||||
# Should not create any elements
|
# Should not create any elements
|
||||||
assert len(page.layout.elements) == 0
|
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"""
|
"""Test dropping on existing placeholder updates it with image"""
|
||||||
widget = TestAssetDropWidget()
|
widget = TestAssetDropWidget()
|
||||||
qtbot.addWidget(widget)
|
qtbot.addWidget(widget)
|
||||||
@ -229,6 +229,10 @@ class TestDropEvent:
|
|||||||
|
|
||||||
widget.update = Mock()
|
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
|
# Setup project with page containing placeholder
|
||||||
mock_window = Mock()
|
mock_window = Mock()
|
||||||
mock_window.project = Project(name="Test")
|
mock_window.project = Project(name="Test")
|
||||||
@ -253,7 +257,7 @@ class TestDropEvent:
|
|||||||
widget._get_element_at = Mock(return_value=placeholder)
|
widget._get_element_at = Mock(return_value=placeholder)
|
||||||
|
|
||||||
mime_data = QMimeData()
|
mime_data = QMimeData()
|
||||||
mime_data.setUrls([QUrl.fromLocalFile("/path/to/image.jpg")])
|
mime_data.setUrls([QUrl.fromLocalFile(str(test_image))])
|
||||||
|
|
||||||
event = Mock()
|
event = Mock()
|
||||||
event.mimeData = Mock(return_value=mime_data)
|
event.mimeData = Mock(return_value=mime_data)
|
||||||
@ -265,7 +269,8 @@ class TestDropEvent:
|
|||||||
# Should replace placeholder with ImageData
|
# Should replace placeholder with ImageData
|
||||||
assert len(page.layout.elements) == 1
|
assert len(page.layout.elements) == 1
|
||||||
assert isinstance(page.layout.elements[0], ImageData)
|
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')
|
@patch('pyPhotoAlbum.mixins.asset_drop.AddElementCommand')
|
||||||
def test_drop_multiple_files(self, mock_cmd_class, qtbot):
|
def test_drop_multiple_files(self, mock_cmd_class, qtbot):
|
||||||
|
|||||||
@ -22,6 +22,13 @@ class TestViewWindow(ViewOperationsMixin, QMainWindow):
|
|||||||
self.gl_widget.height = Mock(return_value=600)
|
self.gl_widget.height = Mock(return_value=600)
|
||||||
self.project = Mock(spec=Project)
|
self.project = Mock(spec=Project)
|
||||||
self.project.working_dpi = 300
|
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._update_view_called = False
|
||||||
self._status_message = None
|
self._status_message = None
|
||||||
|
|
||||||
@ -125,15 +132,11 @@ class TestSnappingToggles:
|
|||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.snap_to_grid = False
|
||||||
layout.snapping_system.snap_to_grid = False
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.toggle_grid_snap()
|
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 "enabled" in window._status_message.lower()
|
||||||
assert window._update_view_called
|
assert window._update_view_called
|
||||||
|
|
||||||
@ -141,15 +144,11 @@ class TestSnappingToggles:
|
|||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.snap_to_grid = True
|
||||||
layout.snapping_system.snap_to_grid = True
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.toggle_grid_snap()
|
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 "disabled" in window._status_message.lower()
|
||||||
assert window._update_view_called
|
assert window._update_view_called
|
||||||
|
|
||||||
@ -157,7 +156,7 @@ class TestSnappingToggles:
|
|||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
window._current_page = None
|
window.project = None
|
||||||
|
|
||||||
window.toggle_grid_snap()
|
window.toggle_grid_snap()
|
||||||
|
|
||||||
@ -167,15 +166,11 @@ class TestSnappingToggles:
|
|||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.snap_to_edges = False
|
||||||
layout.snapping_system.snap_to_edges = False
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.toggle_edge_snap()
|
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 "enabled" in window._status_message.lower()
|
||||||
assert window._update_view_called
|
assert window._update_view_called
|
||||||
|
|
||||||
@ -183,75 +178,55 @@ class TestSnappingToggles:
|
|||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.snap_to_edges = True
|
||||||
layout.snapping_system.snap_to_edges = True
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.toggle_edge_snap()
|
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()
|
assert "disabled" in window._status_message.lower()
|
||||||
|
|
||||||
def test_toggle_guide_snap_enable(self, qtbot):
|
def test_toggle_guide_snap_enable(self, qtbot):
|
||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.snap_to_guides = False
|
||||||
layout.snapping_system.snap_to_guides = False
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.toggle_guide_snap()
|
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()
|
assert "enabled" in window._status_message.lower()
|
||||||
|
|
||||||
def test_toggle_guide_snap_disable(self, qtbot):
|
def test_toggle_guide_snap_disable(self, qtbot):
|
||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.snap_to_guides = True
|
||||||
layout.snapping_system.snap_to_guides = True
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.toggle_guide_snap()
|
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()
|
assert "disabled" in window._status_message.lower()
|
||||||
|
|
||||||
def test_toggle_snap_lines_show(self, qtbot):
|
def test_toggle_snap_lines_show(self, qtbot):
|
||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.show_snap_lines = False
|
||||||
layout.show_snap_lines = False
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.toggle_snap_lines()
|
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()
|
assert "visible" in window._status_message.lower()
|
||||||
|
|
||||||
def test_toggle_snap_lines_hide(self, qtbot):
|
def test_toggle_snap_lines_hide(self, qtbot):
|
||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.show_snap_lines = True
|
||||||
layout.show_snap_lines = True
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.toggle_snap_lines()
|
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()
|
assert "hidden" in window._status_message.lower()
|
||||||
|
|
||||||
|
|
||||||
@ -355,11 +330,11 @@ class TestGridSettingsDialog:
|
|||||||
"""Test grid settings dialog"""
|
"""Test grid settings dialog"""
|
||||||
|
|
||||||
def test_set_grid_size_no_page(self, qtbot):
|
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()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
window._current_page = None
|
window.project = None
|
||||||
|
|
||||||
window.set_grid_size()
|
window.set_grid_size()
|
||||||
|
|
||||||
@ -396,61 +371,45 @@ class TestLayoutTabDelegation:
|
|||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.snap_to_grid = False
|
||||||
layout.snapping_system.snap_to_grid = False
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.layout_toggle_grid_snap()
|
window.layout_toggle_grid_snap()
|
||||||
|
|
||||||
# Should delegate to 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
|
assert window._update_view_called
|
||||||
|
|
||||||
def test_layout_toggle_edge_snap_delegates(self, qtbot):
|
def test_layout_toggle_edge_snap_delegates(self, qtbot):
|
||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.snap_to_edges = False
|
||||||
layout.snapping_system.snap_to_edges = False
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.layout_toggle_edge_snap()
|
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
|
assert window._update_view_called
|
||||||
|
|
||||||
def test_layout_toggle_guide_snap_delegates(self, qtbot):
|
def test_layout_toggle_guide_snap_delegates(self, qtbot):
|
||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.snap_to_guides = False
|
||||||
layout.snapping_system.snap_to_guides = False
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.layout_toggle_guide_snap()
|
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
|
assert window._update_view_called
|
||||||
|
|
||||||
def test_layout_toggle_snap_lines_delegates(self, qtbot):
|
def test_layout_toggle_snap_lines_delegates(self, qtbot):
|
||||||
window = TestViewWindow()
|
window = TestViewWindow()
|
||||||
qtbot.addWidget(window)
|
qtbot.addWidget(window)
|
||||||
|
|
||||||
layout = PageLayout()
|
window.project.show_snap_lines = False
|
||||||
layout.show_snap_lines = False
|
|
||||||
page = Mock()
|
|
||||||
page.layout = layout
|
|
||||||
window._current_page = page
|
|
||||||
|
|
||||||
window.layout_toggle_snap_lines()
|
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
|
assert window._update_view_called
|
||||||
|
|
||||||
def test_layout_set_grid_size_delegates(self, qtbot):
|
def test_layout_set_grid_size_delegates(self, qtbot):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user