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)

Reply via email to