File 066-testmock-add--test-options-disable-name-validation.patch of Package virt-manager
Subject: testmock: add --test-options=disable-name-validation
From: Cole Robinson crobinso@redhat.com Sat Feb 7 15:27:52 2026 -0500
Date: Mon Feb 9 20:56:38 2026 +0100:
Git: b3daef7efa42e02ebe389fc1573dea236563a62e
Use this to fix uitests testNewVMInstallFail and friends.
Now that we catch / in object names which took away our easy way to
make libvirt domain creation fail and hit some important error
code paths
Signed-off-by: Cole Robinson <crobinso@redhat.com>
diff --git a/tests/uitests/test_clonevm.py b/tests/uitests/test_clonevm.py
index 1e592818e..5ad899066 100644
--- a/tests/uitests/test_clonevm.py
+++ b/tests/uitests/test_clonevm.py
@@ -191,6 +191,8 @@ def testCloneStorageChange(app):
def testCloneError(app):
+ app.open(extra_opts=["--test-options=disable-name-validation"])
+
# Trigger some error handling scenarios
win = app.manager_open_clone("test-clone-full")
win.find("Clone", "push button").click()
diff --git a/tests/uitests/test_createvm.py b/tests/uitests/test_createvm.py
index 1d4c95f38..ea1de4dff 100644
--- a/tests/uitests/test_createvm.py
+++ b/tests/uitests/test_createvm.py
@@ -973,6 +973,8 @@ def testNewVMXenPV(app):
def testNewVMInstallFail(app):
+ app.open(extra_opts=["--test-options=disable-name-validation"])
+
def dofail():
_newvm = _open_newvm(app)
_newvm.find_fuzzy("Manual", "radio").click()
diff --git a/tests/uitests/test_details.py b/tests/uitests/test_details.py
index 8a074adaf..097dcff15 100644
--- a/tests/uitests/test_details.py
+++ b/tests/uitests/test_details.py
@@ -108,6 +108,7 @@ def testDetailsRenameSimple(app):
"""
Rename a simple VM
"""
+ app.open(extra_opts=["--test-options=disable-name-validation"])
origname = "test-clone-simple"
win = app.manager_open_details(origname)
_testRename(app, win, origname, origname)
@@ -118,6 +119,7 @@ def testDetailsRenameNVRAM(app):
"""
Rename a VM that will trigger the nvram behavior
"""
+ app.open(extra_opts=["--test-options=disable-name-validation"])
origname = "test-many-devices"
win = app.manager_open_details(origname, shutdown=True)
_testRename(app, win, origname, "test-new-name")
diff --git a/tests/uitests/test_snapshot.py b/tests/uitests/test_snapshot.py
index 86f4394e3..9406cb779 100644
--- a/tests/uitests/test_snapshot.py
+++ b/tests/uitests/test_snapshot.py
@@ -116,6 +116,7 @@ def testSnapshotMisc1(app):
Test snapshot corner cases
"""
vmname = "test-state-managedsave"
+ # app.open(extra_opts=["--test-options=disable-name-validation"], show_console=vmname)
win = _open_snapshots_window(app, vmname)
vmrun = win.find("Restore", "push button")
diff --git a/virtManager/lib/testmock.py b/virtManager/lib/testmock.py
index 46ede26f7..6977624a8 100644
--- a/virtManager/lib/testmock.py
+++ b/virtManager/lib/testmock.py
@@ -184,6 +184,8 @@ class CLITestOptionsClass:
* test-vm-run-fail: Make VM run fail, so we can test the error path
* test-update-device-fail: Make UpdateDevice API call fail
+ * disable-name-validation: Disable validate_generic_name checking
+ to test error handling for invalid object names
* firstrun-uri: If set, use this as the initial connection URI
if we are doing firstrun testing
@@ -237,6 +239,7 @@ class CLITestOptionsClass:
self.test_managed_save = _get("test-managed-save")
self.test_vm_run_fail = _get("test-vm-run-fail")
self.test_update_device_fail = _get("test-update-device-fail")
+ self.disable_name_validation = _get("disable-name-validation")
self.firstrun_uri = _get_value("firstrun-uri")
self.fake_vnc_username = _get("fake-vnc-username")
self.fake_systray = _get("fake-systray")
@@ -276,3 +279,11 @@ class CLITestOptionsClass:
virtinst.diskbackend.SETFACL = "getfacl"
# pylint: disable=protected-access
virtinst.diskbackend._fix_perms_chmod = fake_search
+
+ if self.disable_name_validation:
+ import virtinst.xmlbuilder
+
+ def noop_validate(*args, **kwargs):
+ pass
+
+ virtinst.xmlbuilder.XMLBuilder.validate_generic_name = noop_validate