Refactoring: Made complete codebase PEP8 compatible.
[osm/vim-emu.git] / src / emuvim / test / base.py
old mode 100644 (file)
new mode 100755 (executable)
index f652259..6221765
@@ -1,13 +1,36 @@
-"""
-Helper module that implements helpers for test implementations.
-"""
-
+# Copyright (c) 2015 SONATA-NFV and Paderborn University
+# ALL RIGHTS RESERVED.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Neither the name of the SONATA-NFV, Paderborn University
+# nor the names of its contributors may be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# This work has been performed in the framework of the SONATA project,
+# funded by the European Commission under Grant number 671517 through
+# the Horizon 2020 and 5G-PPP programmes. The authors would like to
+# acknowledge the contributions of their colleagues of the SONATA
+# partner consortium (www.sonata-nfv.eu).
 import unittest
 import os
 import subprocess
 import docker
 from emuvim.dcemulator.net import DCNetwork
 from mininet.clean import cleanup
+from mininet.node import Controller
+
 
 class SimpleTestTopology(unittest.TestCase):
     """
@@ -27,15 +50,21 @@ class SimpleTestTopology(unittest.TestCase):
     def createNet(
             self,
             nswitches=0, ndatacenter=0, nhosts=0, ndockers=0,
-            autolinkswitches=False):
+            autolinkswitches=False, controller=Controller, **kwargs):
         """
         Creates a Mininet instance and automatically adds some
         nodes to it.
+
+        Attention, we should always use Mininet's default controller
+        for our tests. Only use other controllers if you want to test
+        specific controller functionality.
         """
-        self.net = net = DCNetwork()
+        self.net = DCNetwork(controller=controller, **kwargs)
 
         # add some switches
-        for i in range(0, nswitches):
+        # start from s1 because ovs does not like to have dpid = 0
+        # and switch name-number is being used by mininet to set the dpid
+        for i in range(1, nswitches + 1):
             self.s.append(self.net.addSwitch('s%d' % i))
         # if specified, chain all switches
         if autolinkswitches:
@@ -52,7 +81,8 @@ class SimpleTestTopology(unittest.TestCase):
             self.h.append(self.net.addHost('h%d' % i))
         # add some dockers
         for i in range(0, ndockers):
-            self.d.append(self.net.addDocker('d%d' % i, dimage="ubuntu"))
+            self.d.append(self.net.addDocker('d%d' %
+                                             i, dimage="ubuntu:trusty"))
 
     def startNet(self):
         self.net.start()
@@ -65,15 +95,16 @@ class SimpleTestTopology(unittest.TestCase):
         Helper to interact with local docker instance.
         """
         if self.docker_cli is None:
-            self.docker_cli = docker.Client(
+            self.docker_cli = docker.APIClient(
                 base_url='unix://var/run/docker.sock')
         return self.docker_cli
 
-    def getDockernetContainers(self):
+    def getContainernetContainers(self):
         """
-        List the containers managed by dockernet
+        List the containers managed by containernet
         """
-        return self.getDockerCli().containers(filters={"label": "com.dockernet"})
+        return self.getDockerCli().containers(
+            filters={"label": "com.containernet"})
 
     @staticmethod
     def setUp():
@@ -85,7 +116,7 @@ class SimpleTestTopology(unittest.TestCase):
         # make sure that all pending docker containers are killed
         with open(os.devnull, 'w') as devnull:
             subprocess.call(
-                "sudo docker rm -f $(sudo docker ps --filter 'label=com.dockernet' -a -q)",
+                "sudo docker rm -f $(sudo docker ps --filter 'label=com.containernet' -a -q)",
                 stdout=devnull,
                 stderr=devnull,
-                shell=True)
\ No newline at end of file
+                shell=True)