Change in vdsm[master]: Hidden bonds[1/2]: Adding a test.

gvallare at redhat.com gvallare at redhat.com
Sat Jun 29 17:03:28 UTC 2013


Giuseppe Vallarelli has uploaded a new change for review.

Change subject: Hidden bonds[1/2]: Adding a test.
......................................................................

Hidden bonds[1/2]: Adding a test.

Adding a test to cover the current implementation of nics().

Change-Id: Idde9ce51025e97c176ffa95aa0f81bcbc639f96f
Signed-off-by: Giuseppe Vallarelli <gvallare at redhat.com>
---
M lib/vdsm/netinfo.py
M tests/netinfoTests.py
2 files changed, 55 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/38/16238/1

diff --git a/lib/vdsm/netinfo.py b/lib/vdsm/netinfo.py
index 0566920..37cd0b4 100644
--- a/lib/vdsm/netinfo.py
+++ b/lib/vdsm/netinfo.py
@@ -42,6 +42,7 @@
 
 NET_CONF_PREF = NET_CONF_DIR + 'ifcfg-'
 PROC_NET_VLAN = '/proc/net/vlan/'
+NET_FN_MATCH = '/sys/class/net/*'
 BONDING_MASTERS = '/sys/class/net/bonding_masters'
 BONDING_SLAVES = '/sys/class/net/%s/bonding/slaves'
 
@@ -61,7 +62,7 @@
     hidden_nics = config.get('vars', 'hidden_nics').split(',')
     fake_nics = config.get('vars', 'fake_nics').split(',')
 
-    for b in glob.glob('/sys/class/net/*'):
+    for b in glob.glob(NET_FN_MATCH):
         nic = b.split('/')[-1]
         if not os.path.exists(os.path.join(b, 'device')):
             if _match_nic_name(nic, fake_nics):
diff --git a/tests/netinfoTests.py b/tests/netinfoTests.py
index f6a6fc8..7f93ce0 100644
--- a/tests/netinfoTests.py
+++ b/tests/netinfoTests.py
@@ -18,13 +18,17 @@
 #
 # Refer to the README and COPYING files for full details of the license
 #
-
 import os
-from testrunner import VdsmTestCase as TestCaseBase
+from shutil import rmtree
+
 import ethtool
 
 from vdsm import netinfo
+
 from monkeypatch import MonkeyPatch
+from testrunner import VdsmTestCase as TestCaseBase
+
+DEV_DIR_FIXTURE = '/tmp/net/'
 
 # speeds defined in ethtool
 ETHTOOL_SPEEDS = set([10, 100, 1000, 2500, 10000])
@@ -100,3 +104,50 @@
             ipaddrs.append(dev.ipv4_address)
             for ip in ipaddrs:
                 self.assertEqual(dev.device, netinfo.getIfaceByIP(ip))
+
+    def _dev_dirs_setup():
+        """
+        Creates test fixture which is a dir structure:
+        /tmp/net/em/device
+        /tmp/net/me/device
+        /tmp/net/fake0
+        /tmp/net/fake1
+        /tmp/net/hid0/device
+        /tmp/net/hideous/device
+        returns related fn-match pattern.
+        """
+
+        dev_dirs = [DEV_DIR_FIXTURE + dev for dev in
+                    ('em/device', 'me/device', 'fake0', 'fake',
+                     'hid/device', 'hideous/device')]
+        for dev_dir in dev_dirs:
+            os.makedirs(dev_dir)
+
+        return DEV_DIR_FIXTURE + '*'
+
+    def _config_setup():
+        """
+        Returns an instance of a config stub.
+        """
+        class Config(object):
+            def get(self, unused_vars, key):
+                if key == 'hidden_nics':
+                    return 'hid*'
+                else:
+                    return 'fake*'
+
+        return Config()
+
+    @MonkeyPatch(netinfo, 'NET_FN_MATCH', _dev_dirs_setup())
+    @MonkeyPatch(netinfo, 'config', _config_setup())
+    def testNics(self):
+        try:
+            self.assertEqual(set(netinfo.nics()),
+                             set(['em', 'me', 'fake0', 'fake']))
+        except:
+            # teardown test fixture
+            rmtree(DEV_DIR_FIXTURE)
+            raise
+        else:
+            # teardown test fixture
+            rmtree(DEV_DIR_FIXTURE)


-- 
To view, visit http://gerrit.ovirt.org/16238
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idde9ce51025e97c176ffa95aa0f81bcbc639f96f
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Giuseppe Vallarelli <gvallare at redhat.com>


More information about the vdsm-patches mailing list