diff options
Diffstat (limited to 'test/mock_trex.py')
-rw-r--r-- | test/mock_trex.py | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/test/mock_trex.py b/test/mock_trex.py new file mode 100644 index 0000000..cb8a081 --- /dev/null +++ b/test/mock_trex.py @@ -0,0 +1,82 @@ +# 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.api import STLError +# will raise ImportError: No module named trex.stl.api +# trex_gen.py will also try to import a number of trex.stl.api classes +try: + import trex.stl.api + assert trex.stl.api +except ImportError: + from types import ModuleType + + # Make up a trex.stl.api.STLError class + class STLDummy(Exception): + """Dummy class.""" + + trex_lib_mod = ModuleType('trex') + sys.modules['trex'] = trex_lib_mod + stl_lib_mod = ModuleType('trex.stl') + trex_lib_mod.stl = stl_lib_mod + sys.modules['trex.stl'] = stl_lib_mod + api_mod = ModuleType('trex.stl.api') + stl_lib_mod.api = api_mod + sys.modules['trex.stl.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.ARP = STLDummy + api_mod.IP = STLDummy + api_mod.ARP = 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.STLTXMultiBurst = STLDummy + api_mod.STLVmFixChecksumHw = STLDummy + api_mod.STLVmFixIpv4 = STLDummy + api_mod.STLVmFlowVar = STLDummy + api_mod.STLVmFlowVarRepeatableRandom = STLDummy + api_mod.STLVmTupleGen = STLDummy + api_mod.STLVmWrFlowVar = STLDummy + api_mod.UDP = STLDummy + api_mod.bind_layers = STLDummy + api_mod.FlagsField = STLDummy + api_mod.Packet = STLDummy + api_mod.ThreeBytesField = STLDummy + api_mod.XByteField = STLDummy + + common_mod = ModuleType('trex.common') + trex_lib_mod.common = common_mod + sys.modules['trex.common'] = common_mod + services_mod = ModuleType('trex.common.services') + common_mod.services = services_mod + sys.modules['trex.common.services'] = services_mod + arp_mod = ModuleType('trex.common.services.trex_service_arp') + services_mod.trex_stl_service_arp = arp_mod + sys.modules['trex.common.services.trex_service_arp'] = arp_mod + arp_mod.ServiceARP = STLDummy + +def no_op(): + """Empty function.""" |