Merge ~logan/software-properties:lp-2008489 into software-properties:ubuntu/master

Proposed by Logan Rosen
Status: Needs review
Proposed branch: ~logan/software-properties:lp-2008489
Merge into: software-properties:ubuntu/master
Diff against target: 48 lines (+30/-1)
2 files modified
softwareproperties/gtk/SoftwarePropertiesGtk.py (+2/-1)
tests/test_SoftwarePropertiesGtk.py (+28/-0)
Reviewer Review Type Date Requested Status
Ubuntu Core Development Team Pending
Review via email: mp+444960@code.launchpad.net
To post a comment you must log in.

Unmerged commits

99a5866... by Logan Rosen

Escape message in error dialog (LP: #2008489)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/softwareproperties/gtk/SoftwarePropertiesGtk.py b/softwareproperties/gtk/SoftwarePropertiesGtk.py
index 0cced00..2d0db6d 100644
--- a/softwareproperties/gtk/SoftwarePropertiesGtk.py
+++ b/softwareproperties/gtk/SoftwarePropertiesGtk.py
@@ -148,7 +148,8 @@ def error(parent_window, summary, msg):
148 type=Gtk.MessageType.ERROR,148 type=Gtk.MessageType.ERROR,
149 buttons=Gtk.ButtonsType.OK,149 buttons=Gtk.ButtonsType.OK,
150 message_format=None)150 message_format=None)
151 dialog.set_markup("<big><b>%s</b></big>\n\n%s" % (summary, msg))151 escaped_msg = GLib.markup_escape_text(msg, len(msg))
152 dialog.set_markup("<big><b>%s</b></big>\n\n%s" % (summary, escaped_msg))
152 dialog.run()153 dialog.run()
153 dialog.destroy()154 dialog.destroy()
154 return False155 return False
diff --git a/tests/test_SoftwarePropertiesGtk.py b/tests/test_SoftwarePropertiesGtk.py
155new file mode 100644156new file mode 100644
index 0000000..ca9dd28
--- /dev/null
+++ b/tests/test_SoftwarePropertiesGtk.py
@@ -0,0 +1,28 @@
1import unittest
2from unittest.mock import patch, MagicMock
3
4from gi.repository import GLib
5
6from softwareproperties.gtk.SoftwarePropertiesGtk import error
7
8
9class SoftwarePropertiesGtkTestCase(unittest.TestCase):
10 @patch('softwareproperties.gtk.SoftwarePropertiesGtk.Gtk')
11 def test_error_dialog_with_escaped_markup(self, mock_gtk):
12 # Create a dummy parent window
13 parent_window = MagicMock()
14
15 # Test input values
16 summary = "Test Summary"
17 msg = "Test Message With <Markup/>"
18 escaped_msg = GLib.markup_escape_text(msg, len(msg))
19
20 # Set up mock objects and return values
21 mock_dialog = MagicMock()
22 mock_gtk.MessageDialog.return_value = mock_dialog
23
24 # Call the function
25 error(parent_window, summary, msg)
26
27 # Assert that the dialog has markup set with escaped message
28 mock_dialog.set_markup.assert_called_once_with("<big><b>%s</b></big>\n\n%s" % (summary, escaped_msg))

Subscribers

People subscribed via source and target branches