tests: make XMLMatches work with Python3
The XMLMatcher currently assumes that it always gets XML in a string type in UTF-8 encoding. In python3, depending on how the input XML was created it might be string or bytes. To deal with this difference, if we see the input is a string type, then we decode it into bytes and use BytesIO with a forced encoding. This enables the tests to pass on both py2 & py3 Blueprint: nova-python3-newton Change-Id: Iad84520dab65cb4a2e0060e64b5bfdd56381ed7b
This commit is contained in:
parent
5b0773f53a
commit
e421ea449d
|
@ -396,10 +396,17 @@ class XMLMatches(object):
|
|||
|
||||
SKIP_TAGS = (etree.Comment, etree.ProcessingInstruction)
|
||||
|
||||
@staticmethod
|
||||
def _parse(text_or_bytes):
|
||||
if isinstance(text_or_bytes, six.text_type):
|
||||
text_or_bytes = text_or_bytes.encode("utf-8")
|
||||
parser = etree.XMLParser(encoding="UTF-8")
|
||||
return etree.parse(six.BytesIO(text_or_bytes), parser)
|
||||
|
||||
def __init__(self, expected, allow_mixed_nodes=False,
|
||||
skip_empty_text_nodes=True, skip_values=('DONTCARE',)):
|
||||
self.expected_xml = expected
|
||||
self.expected = etree.parse(six.StringIO(expected))
|
||||
self.expected = self._parse(expected)
|
||||
self.allow_mixed_nodes = allow_mixed_nodes
|
||||
self.skip_empty_text_nodes = skip_empty_text_nodes
|
||||
self.skip_values = set(skip_values)
|
||||
|
@ -408,7 +415,7 @@ class XMLMatches(object):
|
|||
return 'XMLMatches(%r)' % self.expected_xml
|
||||
|
||||
def match(self, actual_xml):
|
||||
actual = etree.parse(six.StringIO(actual_xml))
|
||||
actual = self._parse(actual_xml)
|
||||
|
||||
state = XMLMatchState(self.expected_xml, actual_xml)
|
||||
expected_doc_info = self._get_xml_docinfo(self.expected)
|
||||
|
|
|
@ -95,7 +95,6 @@ nova.tests.unit.test_configdrive2.ConfigDriveTestCase
|
|||
nova.tests.unit.test_hacking.HackingTestCase
|
||||
nova.tests.unit.test_ipv6.IPv6AccountIdentiferTestCase
|
||||
nova.tests.unit.test_matchers.TestDictMatches
|
||||
nova.tests.unit.test_matchers.TestXMLMatches
|
||||
nova.tests.unit.test_metadata.MetadataHandlerTestCase
|
||||
nova.tests.unit.test_metadata.MetadataPasswordTestCase
|
||||
nova.tests.unit.test_metadata.MetadataTestCase
|
||||
|
@ -110,44 +109,6 @@ nova.tests.unit.virt.ironic.test_driver.IronicDriverTestCase
|
|||
nova.tests.unit.virt.ironic.test_patcher.IronicDriverFieldsTestCase
|
||||
nova.tests.unit.virt.libvirt.storage.test_lvm.LvmTestCase
|
||||
nova.tests.unit.virt.libvirt.storage.test_rbd.RbdTestCase
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigCPUFeatureTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigCPUTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigCapsTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestCPUFeatureTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestCPUNUMATest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestCPUTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestCPUTuneTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestChannelTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestClockTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestConsoleTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestControllerTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestDiskTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestFeatureTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestFilesysTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestGraphicsTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestHostdev
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestHostdevPCI
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestIDMap
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestInputTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestInterfaceTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestMemoryBackingTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestMemoryTuneTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestMetadataNovaTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestNUMATuneTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestRngTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestSMBIOSTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestSeclabel
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestSerialTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestSnapshotDiskTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestSnapshotTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestSysinfoTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestTimerTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestVideoTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigGuestWatchdogTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigMemoryBalloonTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigSecretTest
|
||||
nova.tests.unit.virt.libvirt.test_config.LibvirtConfigTest
|
||||
nova.tests.unit.virt.libvirt.test_driver.LibvirtConnTestCase
|
||||
nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase
|
||||
nova.tests.unit.virt.libvirt.test_driver.LibvirtVolumeSnapshotTestCase
|
||||
|
|
Loading…
Reference in New Issue