Fix tests
This commit is contained in:
parent
eca6d43e6a
commit
353b0c4aff
@ -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):
|
||||
|
||||
@ -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):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user