libcloud-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From to...@apache.org
Subject [04/14] libcloud git commit: replaced inheited class with autospec'ed mock
Date Wed, 13 Jul 2016 09:44:18 GMT
replaced inheited class with autospec'ed mock

Signed-off-by: Tomaz Muraus <tomaz@tomaz.me>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/662e3b33
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/662e3b33
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/662e3b33

Branch: refs/heads/trunk
Commit: 662e3b3308a681c30a0253e8212605bcc1930951
Parents: c38971e
Author: Rene Kjellerup <rkjellerup@touchcommerce.com>
Authored: Tue Jul 12 12:07:04 2016 -0700
Committer: Tomaz Muraus <tomaz@tomaz.me>
Committed: Wed Jul 13 11:31:20 2016 +0200

----------------------------------------------------------------------
 libcloud/test/compute/test_libvirt_driver.py | 175 ++++------------------
 1 file changed, 28 insertions(+), 147 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/662e3b33/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 36dd851..9bc46ce 100644
--- a/libcloud/test/compute/test_libvirt_driver.py
+++ b/libcloud/test/compute/test_libvirt_driver.py
@@ -16,129 +16,26 @@
 import sys
 
 from libcloud.compute.drivers.libvirt_driver import LibvirtNodeDriver
-from libcloud.compute.base import NodeState
-from libcloud.compute.types import Provider
 
 
 from libcloud.test import unittest
+from unittest import mock
 
 
-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 __yes(self, *args, **kwargs):
-        return True
-
-    def __ary(self, *args, **kwargs):
-        return []
-
-    def __init__(self):
-        stub = self.__stub
-        yes = self.__yes
-        ary = self.__ary
-        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:
-            if f.startswith('is'):
-                self.__dict__[f] = yes
-            elif f.startswith('list'):
-                self.__dict__[f] = ary
-            else:
-                self.__dict__[f] = stub
-
-
-class LibvirtNodeDriverTestCase(LibvirtNodeDriver, unittest.TestCase):
-    type = Provider.LIBVIRT
-    name = 'Libvirt'
-    website = 'http://libvirt.org/'
-
-    NODE_STATE_MAP = {
-        0: NodeState.TERMINATED,  # no state
-        1: NodeState.RUNNING,  # domain is running
-        2: NodeState.PENDING,  # domain is blocked on resource
-        3: NodeState.TERMINATED,  # domain is paused by user
-        4: NodeState.TERMINATED,  # domain is being shut down
-        5: NodeState.TERMINATED,  # domain is shut off
-        6: NodeState.UNKNOWN,  # domain is crashed
-        7: NodeState.UNKNOWN,  # domain is suspended by guest power management
-    }
-
-    def __init__(self, argv=None):
-        unittest.TestCase.__init__(self, argv)
-        self._uri = 'qemu:///system'
-        self.connection = virConnect()
+@mock.patch('libcloud.compute.drivers.libvirt_driver.libvirt', autospec=True)
+class LibvirtNodeDriverTestCase(unittest.TestCase):
+    arp_output_str = """? (1.2.10.80) at 52:54:00:bc:f9:6c [ether] on br0
+? (1.2.10.33) at 52:54:00:04:89:51 [ether] on br0
+? (1.2.10.97) at 52:54:00:c6:40:ec [ether] on br0
+? (1.2.10.40) at 52:54:00:77:1c:83 [ether] on br0"""
+    ip_output_str = """1.2.10.80 dev br0 lladdr 52:54:00:bc:f9:6c STALE
+1.2.10.33 dev br0 lladdr 52:54:00:04:89:51 REACHABLE
+1.2.10.97 dev br0 lladdr 52:54:00:c6:40:ec DELAY
+1.2.10.40 dev br0 lladdr 52:54:00:77:1c:83 STALE"""
+    bad_output_str = """1.2.10.80 dev br0  52:54:00:bc:f9:6c STALE
+1.2.10.33 dev br0 lladdr 52:54:00:04:89:51 REACHABLE
+1.2.10.97 dev br0 lladdr
+1.2.10.40 dev br0 lladdr 52:54:00:77:1c:83 STALE"""
 
     def _assert_arp_table(self, arp_table):
         self.assertIn('52:54:00:bc:f9:6c', arp_table)
@@ -150,44 +47,28 @@ class LibvirtNodeDriverTestCase(LibvirtNodeDriver, unittest.TestCase):
         self.assertIn('1.2.10.97', arp_table['52:54:00:c6:40:ec'])
         self.assertIn('1.2.10.40', arp_table['52:54:00:77:1c:83'])
 
-    def test_arp_map(self):
-        arp_output_str = """? (1.2.10.80) at 52:54:00:bc:f9:6c [ether] on br0
-? (1.2.10.33) at 52:54:00:04:89:51 [ether] on br0
-? (1.2.10.97) at 52:54:00:c6:40:ec [ether] on br0
-? (1.2.10.40) at 52:54:00:77:1c:83 [ether] on br0
-"""
-        arp_table = self._parse_ip_table_arp(arp_output_str)
+    def test_arp_map(self, *args, **keywargs):
+        driver = LibvirtNodeDriver('')
+        arp_table = driver._parse_ip_table_arp(self.arp_output_str)
         self._assert_arp_table(arp_table)
 
-    def test_ip_map(self):
-        arp_output_str = """1.2.10.80 dev br0 lladdr 52:54:00:bc:f9:6c STALE
-1.2.10.33 dev br0 lladdr 52:54:00:04:89:51 REACHABLE
-1.2.10.97 dev br0 lladdr 52:54:00:c6:40:ec DELAY
-1.2.10.40 dev br0 lladdr 52:54:00:77:1c:83 STALE
-"""
-        arp_table = self._parse_ip_table_neigh(arp_output_str)
+    def test_ip_map(self, *args, **keywargs):
+        driver = LibvirtNodeDriver('')
+        arp_table = driver._parse_ip_table_neigh(self.ip_output_str)
         self._assert_arp_table(arp_table)
 
-    def test_bad_map(self):
-        arp_output_str = """1.2.10.80 dev br0  52:54:00:bc:f9:6c STALE
-1.2.10.33 dev br0 lladdr 52:54:00:04:89:51 REACHABLE
-1.2.10.97 dev br0 lladdr
-1.2.10.40 dev br0 lladdr 52:54:00:77:1c:83 STALE
-"""
-        arp_table = self._parse_ip_table_neigh(arp_output_str)
+    def test_bad_map(self, *args, **keywargs):
+        driver = LibvirtNodeDriver('')
+        arp_table = driver._parse_ip_table_neigh(self.bad_output_str)
         # we should at least get the correctly formatted lines
         self.assertEqual(len(arp_table), 2)
-        arp_output_str = """? (1.2.10.80) at 52:54:00:bc:f9:6c [ether] on br0
-? (1.2.10.33) at 52:54:00:04:89:51 [ether] on br0
-? (1.2.10.97) at 52:54:00:c6:40:ec [ether] on br0
-? (1.2.10.40) at 52:54:00:77:1c:83 [ether] on br0
-"""
-        arp_table = self._parse_ip_table_neigh(arp_output_str)
+        arp_table = driver._parse_ip_table_neigh(self.arp_output_str)
         # nothing should match if the wrong output is sent
         self.assertEqual(len(arp_table), 0)
 
-    def test_list_nodes(self):
-        nodes = self.list_nodes()
+    def test_list_nodes(self, *args, **keywargs):
+        driver = LibvirtNodeDriver('')
+        nodes = driver.list_nodes()
         self.assertEqual(type([]), type(nodes))
         self.assertEqual(len(nodes), 0)
 


Mime
View raw message