From 391dcf76fefb747888a3411ae3b8df7b1ad26685 Mon Sep 17 00:00:00 2001 From: ahothan Date: Sun, 7 Oct 2018 15:55:25 -0700 Subject: 2.0 beta NFVBENCH-91 Allow multi-chaining with separate edge networks Includes complete refactoring of code Beta for NFVbench 2.0 Change-Id: I2997f0fb7722d5ac626cd11a68692ae458c7676e Signed-off-by: ahothan --- test/mock_trex.py | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 test/mock_trex.py (limited to 'test/mock_trex.py') diff --git a/test/mock_trex.py b/test/mock_trex.py new file mode 100644 index 0000000..c128e9a --- /dev/null +++ b/test/mock_trex.py @@ -0,0 +1,70 @@ +# Copyright 2018 Cisco Systems, Inc. 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. +"""This module creates the missing Trex library classes when they are not installed.""" + +import sys + +# Because trex_stl_lib may not be installed when running unit test +# nfvbench.traffic_client will try to import STLError: +# from trex_stl_lib.api import STLError +# will raise ImportError: No module named trex_stl_lib.api +# trex.py will also try to import a number of trex_stl_lib classes +try: + import trex_stl_lib.api + assert trex_stl_lib.api +except ImportError: + from types import ModuleType + + # Make up a trex_stl_lib.api.STLError class + class STLDummy(Exception): + """Dummy class.""" + + pass + + stl_lib_mod = ModuleType('trex_stl_lib') + sys.modules['trex_stl_lib'] = stl_lib_mod + api_mod = ModuleType('trex_stl_lib.api') + stl_lib_mod.api = api_mod + sys.modules['trex_stl_lib.api'] = api_mod + api_mod.STLError = STLDummy + api_mod.STLxyz = STLDummy + api_mod.CTRexVmInsFixHwCs = STLDummy + api_mod.Dot1Q = STLDummy + api_mod.Ether = STLDummy + api_mod.IP = STLDummy + api_mod.STLClient = STLDummy + api_mod.STLFlowLatencyStats = STLDummy + api_mod.STLFlowStats = STLDummy + api_mod.STLPktBuilder = STLDummy + api_mod.STLScVmRaw = STLDummy + api_mod.STLStream = STLDummy + api_mod.STLTXCont = STLDummy + api_mod.STLVmFixChecksumHw = STLDummy + api_mod.STLVmFlowVar = STLDummy + api_mod.STLVmFlowVarRepetableRandom = STLDummy + api_mod.STLVmWrFlowVar = STLDummy + api_mod.UDP = STLDummy + + services_mod = ModuleType('trex_stl_lib.services') + stl_lib_mod.services = services_mod + sys.modules['trex_stl_lib.services'] = services_mod + + arp_mod = ModuleType('trex_stl_lib.services.trex_stl_service_arp') + services_mod.trex_stl_service_arp = arp_mod + sys.modules['trex_stl_lib.services.trex_stl_service_arp'] = arp_mod + arp_mod.STLServiceARP = STLDummy + +def no_op(): + """Empty function.""" + pass -- cgit 1.2.3-korg