Added a mock virConnect class in this I took all the functions defined on a libvirt.virConnect class and added them to the class as a stub function.
the stub function will take any number of arguments and return 0 making creation and API calls super fast ;) for testing purposes and we can add correct Mocking behavior later. Closes #799 Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/d960e651 Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/d960e651 Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/d960e651 Branch: refs/heads/trunk Commit: d960e651f30546a69f1dd2606908df6ef16745d1 Parents: a6c828c Author: Rene Kjellerup <rkjelle...@touchcommerce.com> Authored: Fri Jun 17 16:29:58 2016 -0700 Committer: Anthony Shaw <anthonys...@apache.org> Committed: Fri Jun 24 14:28:02 2016 +1000 ---------------------------------------------------------------------- libcloud/test/compute/test_libvirt_driver.py | 142 +++++++++++++++++++++- 1 file changed, 141 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/d960e651/libcloud/test/compute/test_libvirt_driver.py ---------------------------------------------------------------------- diff --git a/libcloud/test/compute/test_libvirt_driver.py b/libcloud/test/compute/test_libvirt_driver.py index 2e3179f..2993ebd 100644 --- a/libcloud/test/compute/test_libvirt_driver.py +++ b/libcloud/test/compute/test_libvirt_driver.py @@ -21,11 +21,151 @@ from libcloud.compute.drivers.libvirt_driver import LibvirtNodeDriver from libcloud.test import unittest +class virConnect: + """ + A stub/Mock implementation of the libvirt.virConnect class returned by + the libvirt.openX calles + """ + def stub(self, *args, **kwargs): + return 0 + + def __init__(self): + stub = self.stub + fnt = [ + '_dispatchCloseCallback', + '_dispatchDomainEventAgentLifecycleCallback', + '_dispatchDomainEventBalloonChangeCallback', + '_dispatchDomainEventBlockJobCallback', + '_dispatchDomainEventCallbacks', + '_dispatchDomainEventDeviceAddedCallback', + '_dispatchDomainEventDeviceRemovalFailedCallback', + '_dispatchDomainEventDeviceRemovedCallback', + '_dispatchDomainEventDiskChangeCallback', + '_dispatchDomainEventGenericCallback', + '_dispatchDomainEventGraphicsCallback', + '_dispatchDomainEventIOErrorCallback', + '_dispatchDomainEventIOErrorReasonCallback', + '_dispatchDomainEventJobCompletedCallback', + '_dispatchDomainEventLifecycleCallback', + '_dispatchDomainEventMigrationIterationCallback', + '_dispatchDomainEventPMSuspendCallback', + '_dispatchDomainEventPMSuspendDiskCallback', + '_dispatchDomainEventPMWakeupCallback', + '_dispatchDomainEventRTCChangeCallback', + '_dispatchDomainEventTrayChangeCallback', + '_dispatchDomainEventTunableCallback', + '_dispatchDomainEventWatchdogCallback', + '_dispatchNetworkEventLifecycleCallback', + '_o', 'allocPages', 'baselineCPU', 'c_pointer', 'changeBegin', + 'changeCommit', 'changeRollback', 'close', 'compareCPU', + 'createLinux', 'createXML', 'createXMLWithFiles', 'defineXML', + 'defineXMLFlags', 'domainEventDeregister', + 'domainEventDeregisterAny', 'domainEventRegister', + 'domainEventRegisterAny', 'domainListGetStats', + 'domainXMLFromNative', 'domainXMLToNative', + 'findStoragePoolSources', 'getAllDomainStats', 'getCPUMap', + 'getCPUModelNames', 'getCPUStats', 'getCapabilities', + 'getCellsFreeMemory', + 'getDomainCapabilities', + 'getFreeMemory', + 'getFreePages', + 'getHostname', + 'getInfo', + 'getLibVersion', + 'getMaxVcpus', + 'getMemoryParameters', + 'getMemoryStats', + 'getSecurityModel', + 'getSysinfo', + 'getType', + 'getURI', + 'getVersion', + 'interfaceDefineXML', + 'interfaceLookupByMACString', + 'interfaceLookupByName', + 'isAlive', + 'isEncrypted', + 'isSecure', + 'listAllDevices', + 'listAllDomains', + 'listAllInterfaces', + 'listAllNWFilters', + 'listAllNetworks', + 'listAllSecrets', + 'listAllStoragePools', + 'listDefinedDomains', + 'listDefinedInterfaces', + 'listDefinedNetworks', + 'listDefinedStoragePools', + 'listDevices', + 'listDomainsID', + 'listInterfaces', + 'listNWFilters', + 'listNetworks', + 'listSecrets', + 'listStoragePools', + 'lookupByID', + 'lookupByName', + 'lookupByUUID', + 'lookupByUUIDString', + 'networkCreateXML', + 'networkDefineXML', + 'networkEventDeregisterAny', + 'networkEventRegisterAny', + 'networkLookupByName', + 'networkLookupByUUID', + 'networkLookupByUUIDString', + 'newStream', + 'nodeDeviceCreateXML', + 'nodeDeviceLookupByName', + 'nodeDeviceLookupSCSIHostByWWN', + 'numOfDefinedDomains', + 'numOfDefinedInterfaces', + 'numOfDefinedNetworks', + 'numOfDefinedStoragePools', + 'numOfDevices', + 'numOfDomains', + 'numOfInterfaces', + 'numOfNWFilters', + 'numOfNetworks', + 'numOfSecrets', + 'numOfStoragePools', + 'nwfilterDefineXML', + 'nwfilterLookupByName', + 'nwfilterLookupByUUID', + 'nwfilterLookupByUUIDString', + 'registerCloseCallback', + 'restore', + 'restoreFlags', + 'saveImageDefineXML', + 'saveImageGetXMLDesc', + 'secretDefineXML', + 'secretLookupByUUID', + 'secretLookupByUUIDString', + 'secretLookupByUsage', + 'setKeepAlive', + 'setMemoryParameters', + 'storagePoolCreateXML', + 'storagePoolDefineXML', + 'storagePoolLookupByName', + 'storagePoolLookupByUUID', + 'storagePoolLookupByUUIDString', + 'storageVolLookupByKey', + 'storageVolLookupByPath', + 'suspendForDuration', + 'unregisterCloseCallback', + 'virConnGetLastError', + 'virConnResetLastError' + ] + for f in fnt: + self.__dict__[f] = stub + + class LibvirtNodeDriverTestCase(LibvirtNodeDriver, unittest.TestCase): def __init__(self, argv=None): unittest.TestCase.__init__(self, argv) self._uri = 'qemu:///system' - self.connection = None + self.connection = virConnect() def _assert_arp_table(self, arp_table): self.assertIn('52:54:00:bc:f9:6c', arp_table)