"""Values from requests do not change the XPath queries they are used in.""" import unittest from unittest.mock import Mock from vrtManager.connection import wvmConnect from vrtManager.network import wvmNetwork CAPS = """64/usr/bin/qemu-x86 q35 /usr/bin/qemu-armvirt""" class FakeConn: def __init__(self): self.defined = None def networkDefineXML(self, xml): self.defined = xml class XPathValueTests(unittest.TestCase): def setUp(self): self.conn = wvmConnect.__new__(wvmConnect) self.conn.get_cap_xml = lambda: CAPS def test_arch_lookups(self): self.assertEqual(self.conn.get_emulator("x86_64"), "/usr/bin/qemu-x86") self.assertEqual(self.conn.get_machine_types("aarch64"), ["virt"]) injected = "nope' or '1'='1" self.assertIsNone(self.conn.get_emulator(injected)) self.assertEqual(self.conn.get_machine_types(injected), []) self.assertEqual(self.conn.get_capabilities(injected), {}) def test_qos_direction_must_be_known(self): net = wvmNetwork.__new__(wvmNetwork) net.wvm = FakeConn() net.net = Mock(**{"XMLDesc.return_value": ""}) with self.assertRaises(ValueError): net.unset_qos("*") net.unset_qos("inbound") self.assertNotIn("inbound", net.wvm.defined) self.assertIn("outbound", net.wvm.defined)