def test_delete_without_channel(self): cmdlist = [] cmdexecutor = create_cmdexecutor(cmdlist) obj = Node('myNode') myNetDevice1 = NetDevice('myNetDevice1') myNetDevice2 = NetDevice('myNetDevice2') myApp1 = Application('myApp1', DummyApplicationImpl(), {}, {}) myApp2 = Application('myApp2', DummyApplicationImpl(), {}, {}) obj.install_net_device(myNetDevice1) obj.install_net_device(myNetDevice2) obj.install_application(myApp1) obj.install_application(myApp2) obj.create() obj.set_cmdexecutor(cmdexecutor) myNetDevice1.set_cmdexecutor(cmdexecutor) myNetDevice2.set_cmdexecutor(cmdexecutor) obj.delete() expected_cmdlist = [ 'ip link delete myNode-myNetDevice1.t', 'ip link delete myNode-myNetDevice2.t', 'ip netns delete myNode', ] self.assertEquals(len(expected_cmdlist), len(cmdlist)) for idx in range(len(expected_cmdlist)): self.assertEquals(expected_cmdlist[idx], cmdlist[idx]) self.assertEquals(obj, myApp1._impl._stop_called_node) self.assertEquals(obj, myApp2._impl._stop_called_node) self.assertEquals(False, obj._is_created)
def test_set_node_impl_is_none(self): impl = None opts = None context = None obj = Application('myApp', impl, opts, context) node = Node('myNode') obj.set_node(node) self.assertEquals('myNode', obj._node._name)
def test_create(self): impl = DummyApplicationImpl() opts = {} obj = Application('myApp', impl, opts, {}) node = Node('myNode') obj.set_node(node) obj.create() self.assertEquals(node, obj._impl._start_called_node) self.assertEquals(opts, obj._impl._start_called_opts)
def test_set_node(self): impl = DummyApplicationImpl() opts = {'key1': 'value1', 'key2': 'value2'} context = {'cntxtKey', 'cntxtValue'} obj = Application('myApp', impl, opts, context) node = Node('myNode') obj.set_node(node) self.assertEquals('myNode', obj._node._name) self.assertEquals(node, obj._impl._application_installed_called_node) self.assertEquals(opts, obj._impl._application_installed_called_opts) self.assertEquals(context, obj._impl._application_installed_called_context)
def test_delete(self): impl = DummyApplicationImpl() opts = {} obj = Application('myApp', impl, opts, {}) node = Node('myNode') obj.set_node(node) obj.create() obj.delete() self.assertEquals(node, obj._impl._stop_called_node) self.assertEquals(opts, obj._impl._stop_called_opts)
def test_create(self): cmdlist = [] cmdexecutor = create_cmdexecutor(cmdlist) obj = Node('myNode') obj.set_cmdexecutor(cmdexecutor) myChannel = Channel('myChannel') myNetDevice1 = NetDevice('myNetDevice1') myNetDevice2 = NetDevice('myNetDevice2') myApp1 = Application('myApp1', DummyApplicationImpl(), {}, {}) myApp2 = Application('myApp2', DummyApplicationImpl(), {}, {}) myNetDevice1.connect_to(myChannel) myNetDevice2.connect_to(myChannel) obj.install_net_device(myNetDevice1) obj.install_net_device(myNetDevice2) obj.install_application(myApp1) obj.install_application(myApp2) myNetDevice1.set_cmdexecutor(cmdexecutor) myNetDevice2.set_cmdexecutor(cmdexecutor) obj.create() expected_cmdlist = [ 'ip netns add myNode', 'ip link add myNetDevice1 type veth peer name myNode-myNetDevice1.t', 'ip link set myNetDevice1 netns myNode', 'brctl addif myChannel myNode-myNetDevice1.t', 'ip link set dev myNode-myNetDevice1.t up', 'ip link add myNetDevice2 type veth peer name myNode-myNetDevice2.t', 'ip link set myNetDevice2 netns myNode', 'brctl addif myChannel myNode-myNetDevice2.t', 'ip link set dev myNode-myNetDevice2.t up', ] self.assertEquals(len(expected_cmdlist), len(cmdlist)) for idx in range(len(expected_cmdlist)): self.assertEquals(expected_cmdlist[idx], cmdlist[idx]) self.assertEquals(obj, myApp1._impl._start_called_node) self.assertEquals(obj, myApp2._impl._start_called_node) self.assertEquals(True, obj._is_created)
def test_install_application(self): obj = Node('myNode') opts = {'key1': 'value1', 'key2': 'value2'} appimpl = DummyApplicationImpl() context = {'cntxtKey': 'cntxtValue'} application = Application('myApp', appimpl, opts, context) obj.install_application(application) obj.uninstall_application(application) self.assertEquals(0, len(obj._applications)) self.assertEquals(None, application._node)
def test___init__(self): name = 'myApp' impl = DummyApplicationImpl() opts = {'key1': 'value1', 'key2': 'value2'} context = {'cntxtKey', 'cntxtValue'} obj = Application(name, impl, opts, context) self.assertEquals('myApp', obj._name) self.assertEquals(opts, obj._opts) self.assertEquals(impl, obj._impl) self.assertEquals(context, obj._context) self.assertEquals(None, obj._node)