NFVBENCH-201 Fix port creation with accurate subnet_id
[nfvbench.git] / test / test_chains.py
index f7a2ce3..d6f32c7 100644 (file)
 #
 """Test Chaining functions."""
 
-from mock_trex import no_op
-
 from mock import MagicMock
 from mock import patch
 import pytest
 
+from .mock_trex import no_op
+
 from nfvbench.chain_runner import ChainRunner
 from nfvbench.chaining import ChainException
 from nfvbench.chaining import ChainVnfPort
@@ -39,7 +39,7 @@ from nfvbench.summarizer import _annotate_chain_stats
 from nfvbench.traffic_client import TrafficClient
 from nfvbench.traffic_gen.traffic_base import Latency
 from nfvbench.traffic_gen.trex_gen import TRex
-
+from nfvbench import utils
 
 # just to get rid of the unused function warning
 no_op()
@@ -70,6 +70,10 @@ def _get_chain_config(sc=ChainType.PVP, scc=1, shared_net=True, rate='1Mpps'):
     config.duration_sec = 2
     config.interval_sec = 1
     config.openrc_file = "dummy.rc"
+    config.no_flow_stats = False
+    config.no_latency_stats = False
+    config.no_latency_streams = False
+    config.loop_vm_arp = True
     return config
 
 def test_chain_runner_ext_no_openstack():
@@ -103,9 +107,13 @@ def test_chain_runner_ext_no_openstack():
 
 
 def _mock_find_image(self, image_name):
-    return True
+    return MagicMock()
+
+def _mock_waiting_servers_deletion(nova_client, servers):
+    return MagicMock()
 
 @patch.object(Compute, 'find_image', _mock_find_image)
+@patch.object(utils, 'waiting_servers_deletion', _mock_waiting_servers_deletion)
 @patch('nfvbench.chaining.Client')
 @patch('nfvbench.chaining.neutronclient')
 @patch('nfvbench.chaining.glanceclient')
@@ -137,6 +145,7 @@ def test_pvp_chain_runner():
 
 # Test not admin exception with empty value is raised
 @patch.object(Compute, 'find_image', _mock_find_image)
+@patch.object(utils, 'waiting_servers_deletion', _mock_waiting_servers_deletion)
 @patch('nfvbench.chaining.Client')
 @patch('nfvbench.chaining.neutronclient')
 @patch('nfvbench.chaining.glanceclient')
@@ -154,7 +163,7 @@ def _test_pvp_chain_no_admin_no_config_values(config, cred, mock_glance, mock_ne
     runner.close()
 
 def test_pvp_chain_runner_no_admin_no_config_values():
-    """Test PVP chain runner."""
+    """Test PVP/mock chain runner."""
     cred = MagicMock(spec=nfvbench.credentials.Credentials)
     cred.is_admin = False
     for shared_net in [True, False]:
@@ -166,6 +175,7 @@ def test_pvp_chain_runner_no_admin_no_config_values():
 
 # Test not admin with mandatory parameters values in config file
 @patch.object(Compute, 'find_image', _mock_find_image)
+@patch.object(utils, 'waiting_servers_deletion', _mock_waiting_servers_deletion)
 @patch('nfvbench.chaining.Client')
 @patch('nfvbench.chaining.neutronclient')
 @patch('nfvbench.chaining.glanceclient')
@@ -257,7 +267,7 @@ def _check_nfvbench_openstack(sc=ChainType.PVP, l2_loopback=False):
         nfvb = NFVBench(config, openstack_spec, config_plugin, factory)
         res = nfvb.run({}, 'pytest')
         if res['status'] != 'OK':
-            print res
+            print(res)
         assert res['status'] == 'OK'
 
 
@@ -271,6 +281,8 @@ def _mock_get_mac(dummy):
 @patch.object(Compute, 'find_image', _mock_find_image)
 @patch.object(TrafficClient, 'skip_sleep', lambda x: True)
 @patch.object(ChainVnfPort, 'get_mac', _mock_get_mac)
+@patch.object(TrafficClient, 'is_udp', lambda x, y: True)
+@patch.object(utils, 'waiting_servers_deletion', _mock_waiting_servers_deletion)
 @patch('nfvbench.chaining.Client')
 @patch('nfvbench.chaining.neutronclient')
 @patch('nfvbench.chaining.glanceclient')
@@ -287,6 +299,7 @@ def test_nfvbench_run(mock_cred, mock_glance, mock_neutron, mock_client):
 
 @patch.object(Compute, 'find_image', _mock_find_image)
 @patch.object(TrafficClient, 'skip_sleep', lambda x: True)
+@patch.object(TrafficClient, 'is_udp', lambda x, y: True)
 @patch('nfvbench.chaining.Client')
 @patch('nfvbench.chaining.neutronclient')
 @patch('nfvbench.chaining.glanceclient')
@@ -302,6 +315,7 @@ def test_nfvbench_ext_arp(mock_cred, mock_glance, mock_neutron, mock_client):
 
 @patch.object(Compute, 'find_image', _mock_find_image)
 @patch.object(TrafficClient, 'skip_sleep', lambda x: True)
+@patch.object(TrafficClient, 'is_udp', lambda x, y: True)
 @patch('nfvbench.chaining.Client')
 @patch('nfvbench.chaining.neutronclient')
 @patch('nfvbench.chaining.glanceclient')
@@ -466,6 +480,7 @@ def test_summarizer():
         assert stats == exp_stats
 
 @patch.object(TrafficClient, 'skip_sleep', lambda x: True)
+@patch.object(TrafficClient, 'is_udp', lambda x, y: True)
 def test_fixed_rate_no_openstack():
     """Test FIxed Rate run - no openstack."""
     config = _get_chain_config(ChainType.EXT, 1, True, rate='100%')