diff --git a/dump/helper.py b/dump/helper.py index 806f2d0e265..7da893a464d 100644 --- a/dump/helper.py +++ b/dump/helper.py @@ -1,4 +1,4 @@ -import os, sys +import os, sys, json def create_template_dict(dbs): """ Generate a Template which will be returned by Executor Classes """ @@ -33,3 +33,15 @@ def sort_lists(ret_template): if isinstance(ret_template[db][key], list): ret_template[db][key].sort() return ret_template + + +def populate_mock(db, db_names, dedicated_dbs): + for db_name in db_names: + db.connect(db_name) + # Delete any default data + db.delete_all_by_pattern(db_name, "*") + with open(dedicated_dbs[db_name]) as f: + mock_json = json.load(f) + for key in mock_json: + for field, value in mock_json[key].items(): + db.set(db_name, key, field, value) diff --git a/dump/plugins/copp.py b/dump/plugins/copp.py index 9cc015945ab..3b63b157069 100644 --- a/dump/plugins/copp.py +++ b/dump/plugins/copp.py @@ -71,7 +71,6 @@ def __init__(self, match_engine=None): self.trap_group = "" self.trap_id = "" self.ns = "" - self.ret_temp = {} def fetch_all_trap_ids(self, ret): traps = [] @@ -108,17 +107,11 @@ def execute(self, params): def handle_state_db(self): req = MatchRequest(db="STATE_DB", table="COPP_TRAP_TABLE", key_pattern=self.copp_trap_cfg_key) ret = self.match_engine.fetch(req) - if not ret["error"] and len(ret["keys"]) > 0: - self.ret_temp["STATE_DB"]["keys"].append(ret["keys"][0]) - else: - self.ret_temp["STATE_DB"]["tables_not_found"].append("COPP_TRAP_TABLE") + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"]) req = MatchRequest(db="STATE_DB", table="COPP_GROUP_TABLE", key_pattern=self.trap_group) ret = self.match_engine.fetch(req) - if not ret["error"] and len(ret["keys"]) > 0: - self.ret_temp["STATE_DB"]["keys"].append(ret["keys"][0]) - else: - self.ret_temp["STATE_DB"]["tables_not_found"].append("COPP_GROUP_TABLE") + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"]) def handle_appl_db(self): req = MatchRequest(db="APPL_DB", table=APP_COPP_TABLE_NAME, key_pattern="*", field="trap_ids", @@ -207,8 +200,7 @@ def __get_asic_policer_obj(self, policer_sai_obj): return req = MatchRequest(db="ASIC_DB", table=ASIC_POLICER_OBJ, key_pattern=policer_sai_obj, ns=self.ns) ret = self.match_engine.fetch(req) - if not ret["error"] and len(ret["keys"]) > 0: - self.ret_temp["ASIC_DB"]["keys"].append(ret["keys"][0]) + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"], False) def __get_asic_queue_obj(self, queue_sai_obj): # Not adding tp tables_not_found because of the type of reason specified for policer obj @@ -216,8 +208,7 @@ def __get_asic_queue_obj(self, queue_sai_obj): return req = MatchRequest(db="ASIC_DB", table=ASIC_QUEUE_OBJ, field="SAI_QUEUE_ATTR_INDEX", value=queue_sai_obj, ns=self.ns) ret = self.match_engine.fetch(req) - if not ret["error"] and len(ret["keys"]) > 0: - self.ret_temp["ASIC_DB"]["keys"].append(ret["keys"][0]) + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"], False) def __get_asic_hostif_entry_obj(self, sai_trap_key): # Not adding tp tables_not_found because of the type of reason specified for policer obj @@ -231,9 +222,9 @@ def __get_asic_hostif_entry_obj(self, sai_trap_key): req = MatchRequest(db="ASIC_DB", table=ASIC_HOSTIF_TABLE_ENTRY, field="SAI_HOSTIF_TABLE_ENTRY_ATTR_TRAP_ID", value=sai_trap_vid, return_fields=["SAI_HOSTIF_TABLE_ENTRY_ATTR_HOST_IF"], ns=self.ns) ret = self.match_engine.fetch(req) + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"], False) if not ret["error"] and len(ret["keys"]) > 0: sai_hostif_table_entry_key = ret["keys"][0] - self.ret_temp["ASIC_DB"]["keys"].append(sai_hostif_table_entry_key) sai_hostif_vid = ret["return_values"][sai_hostif_table_entry_key]["SAI_HOSTIF_TABLE_ENTRY_ATTR_HOST_IF"] return sai_hostif_vid @@ -243,8 +234,7 @@ def __get_asic_hostif_obj(self, sai_hostif_vid): return req = MatchRequest(db="ASIC_DB", table=ASIC_HOSTIF, key_pattern=sai_hostif_vid, ns=self.ns) ret = self.match_engine.fetch(req) - if not ret["error"] and len(ret["keys"]) > 0: - self.ret_temp["ASIC_DB"]["keys"].append(ret["keys"][0]) + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"], False) # When the user writes config to CONFIG_DB, that takes precedence over default config def handle_user_and_default_config(self): diff --git a/dump/plugins/evpn.py b/dump/plugins/evpn.py index 0bf83194f0f..c4df5e106ef 100644 --- a/dump/plugins/evpn.py +++ b/dump/plugins/evpn.py @@ -11,7 +11,6 @@ class Evpn(Executor): def __init__(self, match_engine=None): super().__init__(match_engine) - self.ret_temp = {} self.ns = '' self.remote_ip = '' self.vlan = '' @@ -41,14 +40,6 @@ def execute(self, params): self.init_state_evpn_info(evpn_name) return self.ret_temp - def add_to_ret_template(self, table, db, keys, err): - if not err and keys: - self.ret_temp[db]["keys"].extend(keys) - return True - else: - self.ret_temp[db]["tables_not_found"].extend([table]) - return False - def init_evpn_appl_info(self, evpn_name): req = MatchRequest(db="APPL_DB", table="VXLAN_REMOTE_VNI_TABLE", key_pattern=evpn_name, ns=self.ns) ret = self.match_engine.fetch(req) diff --git a/dump/plugins/executor.py b/dump/plugins/executor.py index 73c324de809..458dcbc63ad 100644 --- a/dump/plugins/executor.py +++ b/dump/plugins/executor.py @@ -16,6 +16,7 @@ def __init__(self, match_engine=None): self.match_engine = MatchEngine(None) else: self.match_engine = match_engine + self.ret_temp = {} @abstractmethod def execute(self, params): @@ -24,3 +25,14 @@ def execute(self, params): @abstractmethod def get_all_args(self, ns): pass + + def add_to_ret_template(self, table, db, keys, err, add_to_tables_not_found=True): + if db not in self.ret_temp: + return [] + + if not err and keys: + self.ret_temp[db]["keys"].extend(keys) + return keys + elif add_to_tables_not_found: + self.ret_temp[db]["tables_not_found"].extend([table]) + return [] diff --git a/dump/plugins/port.py b/dump/plugins/port.py index f8422c9c691..f3f74897a34 100644 --- a/dump/plugins/port.py +++ b/dump/plugins/port.py @@ -29,14 +29,6 @@ def execute(self, params): self.init_state_port_info(port_name) return self.ret_temp - def add_to_ret_template(self, table, db, keys, err): - if not err and keys: - self.ret_temp[db]["keys"].extend(keys) - return True - else: - self.ret_temp[db]["tables_not_found"].extend([table]) - return False - def init_port_config_info(self, port_name): req = MatchRequest(db="CONFIG_DB", table="PORT", key_pattern=port_name, ns=self.ns) ret = self.match_engine.fetch(req) diff --git a/dump/plugins/portchannel.py b/dump/plugins/portchannel.py index 46022dc5f90..b71c7c4fc3a 100644 --- a/dump/plugins/portchannel.py +++ b/dump/plugins/portchannel.py @@ -11,7 +11,6 @@ class Portchannel(Executor): def __init__(self, match_engine=None): super().__init__(match_engine) - self.ret_temp = {} self.ns = '' self.lag_members = set() @@ -38,14 +37,6 @@ def execute(self, params_dict): self.init_lag_asic_info(lag_type_objs_asic) return self.ret_temp - def add_to_ret_template(self, table, db, keys, err): - if not err and keys: - self.ret_temp[db]["keys"].extend(keys) - return True - else: - self.ret_temp[db]["tables_not_found"].extend([table]) - return False - def init_lag_config_info(self): req = MatchRequest(db="CONFIG_DB", table="PORTCHANNEL", key_pattern=self.lag_name, ns=self.ns) ret = self.match_engine.fetch(req) diff --git a/dump/plugins/portchannel_member.py b/dump/plugins/portchannel_member.py index 8c0ec52795b..c8acef5114e 100644 --- a/dump/plugins/portchannel_member.py +++ b/dump/plugins/portchannel_member.py @@ -10,7 +10,6 @@ class Portchannel_Member(Executor): def __init__(self, match_engine=None): super().__init__(match_engine) - self.ret_temp = {} self.ns = '' self.lag_member_key = '' self.lag = '' @@ -39,14 +38,6 @@ def execute(self, params_dict): self.init_lag_member_type_obj_asic_info() return self.ret_temp - def add_to_ret_template(self, table, db, keys, err): - if not err and keys: - self.ret_temp[db]["keys"].extend(keys) - return True - else: - self.ret_temp[db]["tables_not_found"].extend([table]) - return False - def init_lag_member_config_info(self): req = MatchRequest(db="CONFIG_DB", table="PORTCHANNEL_MEMBER", key_pattern=self.lag_member_key, ns=self.ns) ret = self.match_engine.fetch(req) diff --git a/dump/plugins/route.py b/dump/plugins/route.py index b53a83375c2..215f5d5e1b5 100644 --- a/dump/plugins/route.py +++ b/dump/plugins/route.py @@ -53,7 +53,6 @@ def __init__(self, match_engine=None): 4) CLASS_BASED_NEXT_HOP_GROUP_TABLE 5) NEXTHOP_GROUP_TABLE """ - self.ret_temp = {} self.ns = '' self.dest_net = '' self.nh_id = '' @@ -83,14 +82,6 @@ def execute(self, params): self.init_asic_nh() return self.ret_temp - def add_to_ret_template(self, table, db, keys, err, add_to_tables_not_found=True): - if not err and keys: - self.ret_temp[db]["keys"].extend(keys) - return keys - elif add_to_tables_not_found: - self.ret_temp[db]["tables_not_found"].extend([table]) - return [] - def init_route_config_info(self): req = MatchRequest(db="CONFIG_DB", table="STATIC_ROUTE", key_pattern=self.dest_net, ns=self.ns) ret = self.match_engine.fetch(req) diff --git a/dump/plugins/vlan.py b/dump/plugins/vlan.py index f753d0019a9..6f5c9b90a96 100644 --- a/dump/plugins/vlan.py +++ b/dump/plugins/vlan.py @@ -30,27 +30,18 @@ def execute(self, params_dict): def init_vlan_config_info(self, vlan_name): req = MatchRequest(db="CONFIG_DB", table="VLAN", key_pattern=vlan_name, ns=self.ns) ret = self.match_engine.fetch(req) - if not ret["error"] and len(ret["keys"]) != 0: - self.ret_temp[req.db]["keys"] = ret["keys"] - else: - self.ret_temp[req.db]["tables_not_found"] = [req.table] + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"]) def init_vlan_appl_info(self, vlan_name): req = MatchRequest(db="APPL_DB", table="VLAN_TABLE", key_pattern=vlan_name, ns=self.ns) ret = self.match_engine.fetch(req) - if not ret["error"] and len(ret["keys"]) != 0: - self.ret_temp[req.db]["keys"] = ret["keys"] - else: - self.ret_temp[req.db]["tables_not_found"] = [req.table] + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"]) def init_state_vlan_info(self, vlan_name): req = MatchRequest(db="STATE_DB", table="VLAN_TABLE", key_pattern=vlan_name, ns=self.ns) ret = self.match_engine.fetch(req) - if not ret["error"] and len(ret["keys"]) != 0: - self.ret_temp[req.db]["keys"] = ret["keys"] - else: - self.ret_temp[req.db]["tables_not_found"] = [req.table] - + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"]) + def init_asic_vlan_info(self, vlan_name): # Convert 'Vlanxxx' to 'xxx' if vlan_name[0:4] != "Vlan" or not vlan_name[4:].isnumeric(): @@ -62,8 +53,4 @@ def init_asic_vlan_info(self, vlan_name): req = MatchRequest(db="ASIC_DB", table="ASIC_STATE:SAI_OBJECT_TYPE_VLAN", key_pattern="*", field="SAI_VLAN_ATTR_VLAN_ID", value=str(vlan_num), ns=self.ns) ret = self.match_engine.fetch(req) - if not ret["error"] and len(ret["keys"]) != 0: - self.ret_temp[req.db]["keys"] = ret["keys"] - else: - self.ret_temp[req.db]["tables_not_found"] = [req.table] - + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"]) diff --git a/dump/plugins/vlan_member.py b/dump/plugins/vlan_member.py index 1518ac4bd73..2b843c42aa5 100644 --- a/dump/plugins/vlan_member.py +++ b/dump/plugins/vlan_member.py @@ -49,20 +49,12 @@ def init_vlan_member_config_info(self, vlan_name, member_name): def init_vlan_member_appl_info(self, vlan_name, member_name): req = MatchRequest(db="APPL_DB", table="VLAN_MEMBER_TABLE", key_pattern=vlan_name+':'+member_name+"*", ns=self.ns) ret = self.match_engine.fetch(req) - if not ret["error"] and len(ret["keys"]) != 0: - for mem in ret["keys"]: - self.ret_temp[req.db]["keys"].append(mem) - else: - self.ret_temp[req.db]["tables_not_found"].append(req.table) + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"]) def init_state_vlan_member_info(self, vlan_name, member_name): req = MatchRequest(db="STATE_DB", table="VLAN_MEMBER_TABLE", key_pattern=vlan_name+'|'+member_name+"*", ns=self.ns) ret = self.match_engine.fetch(req) - if not ret["error"] and len(ret["keys"]) != 0: - for mem in ret["keys"]: - self.ret_temp[req.db]["keys"].append(mem) - else: - self.ret_temp[req.db]["tables_not_found"].append(req.table) + self.add_to_ret_template(req.table, req.db, ret["keys"], ret["error"]) def init_asic_vlan_member_info(self, vlan_name, member_name): @@ -140,5 +132,3 @@ def init_asic_vlan_member_info(self, vlan_name, member_name): else: self.ret_temp["ASIC_DB"]["tables_not_found"].append("ASIC_STATE:SAI_OBJECT_TYPE_VLAN_MEMBER") self.ret_temp["ASIC_DB"]["tables_not_found"].append("ASIC_STATE:SAI_OBJECT_TYPE_BRIDGE_PORT") - - diff --git a/dump/plugins/vxlan_tunnel.py b/dump/plugins/vxlan_tunnel.py index 7e42218ccef..a34d3629530 100644 --- a/dump/plugins/vxlan_tunnel.py +++ b/dump/plugins/vxlan_tunnel.py @@ -11,7 +11,6 @@ class Vxlan_tunnel(Executor): def __init__(self, match_engine=None): super().__init__(match_engine) - self.ret_temp = {} self.ns = '' self.src_ip = '' self.dst_ip = '' @@ -37,14 +36,6 @@ def execute(self, params): self.init_state_vxlan_tunnel_info(vxlan_tunnel_name) return self.ret_temp - def add_to_ret_template(self, table, db, keys, err): - if not err and keys: - self.ret_temp[db]["keys"].extend(keys) - return True - else: - self.ret_temp[db]["tables_not_found"].extend([table]) - return False - def init_vxlan_tunnel_config_info(self, vxlan_tunnel_name): req = MatchRequest(db="CONFIG_DB", table="VXLAN_TUNNEL", key_pattern=vxlan_tunnel_name, ns=self.ns) ret = self.match_engine.fetch(req) diff --git a/dump/plugins/vxlan_tunnel_map.py b/dump/plugins/vxlan_tunnel_map.py index a021ed4c439..5e089e25ea9 100644 --- a/dump/plugins/vxlan_tunnel_map.py +++ b/dump/plugins/vxlan_tunnel_map.py @@ -11,7 +11,6 @@ class Vxlan_tunnel_map(Executor): def __init__(self, match_engine=None): super().__init__(match_engine) - self.ret_temp = {} self.ns = '' self.vlan = '' self.vni = '' @@ -35,14 +34,6 @@ def execute(self, params): self.init_asic_vxlan_tunnel_map_info() return self.ret_temp - def add_to_ret_template(self, table, db, keys, err): - if not err and keys: - self.ret_temp[db]["keys"].extend(keys) - return True - else: - self.ret_temp[db]["tables_not_found"].extend([table]) - return False - def init_vxlan_tunnel_map_config_info(self, vxlan_tunnel_map_name): req = MatchRequest(db="CONFIG_DB", table="VXLAN_TUNNEL_MAP", key_pattern=vxlan_tunnel_map_name, ns=self.ns, return_fields=["vlan", "vni"]) diff --git a/tests/dump_tests/module_tests/copp_test.py b/tests/dump_tests/module_tests/copp_test.py index 53a4293e2e4..37e9e53c914 100644 --- a/tests/dump_tests/module_tests/copp_test.py +++ b/tests/dump_tests/module_tests/copp_test.py @@ -6,7 +6,7 @@ import pytest from deepdiff import DeepDiff from mock import patch -from dump.helper import create_template_dict, sort_lists +from dump.helper import create_template_dict, sort_lists, populate_mock from dump.plugins.copp import Copp from dump.match_infra import MatchEngine, ConnectionPool from swsscommon.swsscommon import SonicV2Connector @@ -26,18 +26,6 @@ dedicated_dbs['STATE_DB'] = os.path.join(copp_files_path, "state_db.json") -def populate_mock(db, db_names): - for db_name in db_names: - db.connect(db_name) - # Delete any default data - db.delete_all_by_pattern(db_name, "*") - with open(dedicated_dbs[db_name]) as f: - mock_json = json.load(f) - for key in mock_json: - for field, value in mock_json[key].items(): - db.set(db_name, key, field, value) - - @pytest.fixture(scope="class", autouse=True) def match_engine(): @@ -51,7 +39,7 @@ def match_engine(): # popualate the db with mock data db_names = list(dedicated_dbs.keys()) try: - populate_mock(db, db_names) + populate_mock(db, db_names, dedicated_dbs) except Exception as e: assert False, "Mock initialization failed: " + str(e) diff --git a/tests/dump_tests/module_tests/evpn_test.py b/tests/dump_tests/module_tests/evpn_test.py index 77dffd95164..ff4085f0f6c 100644 --- a/tests/dump_tests/module_tests/evpn_test.py +++ b/tests/dump_tests/module_tests/evpn_test.py @@ -2,7 +2,7 @@ import os import pytest from deepdiff import DeepDiff -from dump.helper import create_template_dict +from dump.helper import create_template_dict, populate_mock from dump.plugins.evpn import Evpn from dump.match_infra import MatchEngine, ConnectionPool from swsscommon.swsscommon import SonicV2Connector @@ -21,18 +21,6 @@ dedicated_dbs['STATE_DB'] = os.path.join(evpn_files_path, "state_db.json") -def populate_mock(db, db_names): - for db_name in db_names: - db.connect(db_name) - # Delete any default data - db.delete_all_by_pattern(db_name, "*") - with open(dedicated_dbs[db_name]) as f: - mock_json = json.load(f) - for key in mock_json: - for field, value in mock_json[key].items(): - db.set(db_name, key, field, value) - - @pytest.fixture(scope="class", autouse=True) def match_engine(): @@ -46,7 +34,7 @@ def match_engine(): # popualate the db with mock data db_names = list(dedicated_dbs.keys()) try: - populate_mock(db, db_names) + populate_mock(db, db_names, dedicated_dbs) except Exception as e: assert False, "Mock initialization failed: " + str(e) diff --git a/tests/dump_tests/module_tests/port_test.py b/tests/dump_tests/module_tests/port_test.py index ebed245e31f..011f4014786 100644 --- a/tests/dump_tests/module_tests/port_test.py +++ b/tests/dump_tests/module_tests/port_test.py @@ -6,7 +6,7 @@ import pytest from deepdiff import DeepDiff from mock import patch -from dump.helper import create_template_dict, sort_lists +from dump.helper import create_template_dict, sort_lists, populate_mock from dump.plugins.port import Port from dump.match_infra import MatchEngine, ConnectionPool from swsscommon.swsscommon import SonicV2Connector @@ -26,18 +26,6 @@ dedicated_dbs['STATE_DB'] = os.path.join(port_files_path, "state_db.json") -def populate_mock(db, db_names): - for db_name in db_names: - db.connect(db_name) - # Delete any default data - db.delete_all_by_pattern(db_name, "*") - with open(dedicated_dbs[db_name]) as f: - mock_json = json.load(f) - for key in mock_json: - for field, value in mock_json[key].items(): - db.set(db_name, key, field, value) - - @pytest.fixture(scope="class", autouse=True) def match_engine(): @@ -51,7 +39,7 @@ def match_engine(): # popualate the db with mock data db_names = list(dedicated_dbs.keys()) try: - populate_mock(db, db_names) + populate_mock(db, db_names, dedicated_dbs) except Exception as e: assert False, "Mock initialization failed: " + str(e) diff --git a/tests/dump_tests/module_tests/portchannel_member_test.py b/tests/dump_tests/module_tests/portchannel_member_test.py index e4e0f7558b8..8af90968e51 100644 --- a/tests/dump_tests/module_tests/portchannel_member_test.py +++ b/tests/dump_tests/module_tests/portchannel_member_test.py @@ -4,7 +4,7 @@ import pytest from deepdiff import DeepDiff from mock import patch -from dump.helper import create_template_dict, sort_lists +from dump.helper import create_template_dict, sort_lists, populate_mock from dump.plugins.portchannel_member import Portchannel_Member from dump.match_infra import MatchEngine, ConnectionPool from swsscommon.swsscommon import SonicV2Connector @@ -25,18 +25,6 @@ dedicated_dbs['STATE_DB'] = os.path.join(port_files_path, "state_db.json") -def populate_mock(db, db_names): - for db_name in db_names: - db.connect(db_name) - # Delete any default data - db.delete_all_by_pattern(db_name, "*") - with open(dedicated_dbs[db_name]) as f: - mock_json = json.load(f) - for key in mock_json: - for field, value in mock_json[key].items(): - db.set(db_name, key, field, value) - - @pytest.fixture(scope="class", autouse=True) def match_engine(): @@ -50,7 +38,7 @@ def match_engine(): # popualate the db with mock data db_names = list(dedicated_dbs.keys()) try: - populate_mock(db, db_names) + populate_mock(db, db_names, dedicated_dbs) except Exception as e: assert False, "Mock initialization failed: " + str(e) diff --git a/tests/dump_tests/module_tests/portchannel_test.py b/tests/dump_tests/module_tests/portchannel_test.py index 31c5acf077d..9ae2b54cd2f 100644 --- a/tests/dump_tests/module_tests/portchannel_test.py +++ b/tests/dump_tests/module_tests/portchannel_test.py @@ -4,7 +4,7 @@ import pytest from deepdiff import DeepDiff from mock import patch -from dump.helper import create_template_dict, sort_lists +from dump.helper import create_template_dict, sort_lists, populate_mock from dump.plugins.portchannel import Portchannel from dump.match_infra import MatchEngine, ConnectionPool from swsscommon.swsscommon import SonicV2Connector @@ -25,18 +25,6 @@ dedicated_dbs['STATE_DB'] = os.path.join(port_files_path, "state_db.json") -def populate_mock(db, db_names): - for db_name in db_names: - db.connect(db_name) - # Delete any default data - db.delete_all_by_pattern(db_name, "*") - with open(dedicated_dbs[db_name]) as f: - mock_json = json.load(f) - for key in mock_json: - for field, value in mock_json[key].items(): - db.set(db_name, key, field, value) - - @pytest.fixture(scope="class", autouse=True) def match_engine(): @@ -50,7 +38,7 @@ def match_engine(): # popualate the db with mock data db_names = list(dedicated_dbs.keys()) try: - populate_mock(db, db_names) + populate_mock(db, db_names, dedicated_dbs) except Exception as e: assert False, "Mock initialization failed: " + str(e) diff --git a/tests/dump_tests/module_tests/route_test.py b/tests/dump_tests/module_tests/route_test.py index 568bf333007..22707593b00 100644 --- a/tests/dump_tests/module_tests/route_test.py +++ b/tests/dump_tests/module_tests/route_test.py @@ -4,7 +4,7 @@ import json from deepdiff import DeepDiff from mock import patch -from dump.helper import create_template_dict +from dump.helper import create_template_dict, populate_mock from dump.plugins.route import Route from dump.match_infra import MatchEngine, ConnectionPool from swsscommon.swsscommon import SonicV2Connector @@ -24,18 +24,6 @@ dedicated_dbs['ASIC_DB'] = os.path.join(Route_files_path, "asic_db.json") -def populate_mock(db, db_names): - for db_name in db_names: - db.connect(db_name) - # Delete any default data - db.delete_all_by_pattern(db_name, "*") - with open(dedicated_dbs[db_name]) as f: - mock_json = json.load(f) - for key in mock_json: - for field, value in mock_json[key].items(): - db.set(db_name, key, field, value) - - @pytest.fixture(scope="class", autouse=True) def match_engine(): @@ -49,7 +37,7 @@ def match_engine(): # popualate the db with mock data db_names = list(dedicated_dbs.keys()) try: - populate_mock(db, db_names) + populate_mock(db, db_names, dedicated_dbs) except Exception as e: assert False, "Mock initialization failed: " + str(e) diff --git a/tests/dump_tests/module_tests/vlan_test.py b/tests/dump_tests/module_tests/vlan_test.py index 806fc612228..c0451ca44a8 100644 --- a/tests/dump_tests/module_tests/vlan_test.py +++ b/tests/dump_tests/module_tests/vlan_test.py @@ -4,7 +4,7 @@ import pytest from deepdiff import DeepDiff from mock import patch -from dump.helper import create_template_dict, sort_lists +from dump.helper import create_template_dict, sort_lists, populate_mock from dump.plugins.vlan import Vlan from dump.plugins.vlan_member import Vlan_Member from dump.match_infra import MatchEngine, ConnectionPool @@ -25,6 +25,7 @@ dedicated_dbs['ASIC_DB'] = os.path.join(vlan_files_path, "asic_db.json") dedicated_dbs['STATE_DB'] = os.path.join(vlan_files_path, "state_db.json") + def verbosity_setup(): print("SETUP") os.environ["VERBOSE"] = "1" @@ -32,16 +33,6 @@ def verbosity_setup(): print("TEARDOWN") os.environ["VERBOSE"] = "0" -def populate_mock(db, db_names): - for db_name in db_names: - db.connect(db_name) - # Delete any default data - db.delete_all_by_pattern(db_name, "*") - with open(dedicated_dbs[db_name]) as f: - mock_json = json.load(f) - for key in mock_json: - for field, value in mock_json[key].items(): - db.set(db_name, key, field, value) @pytest.fixture(scope="class", autouse=True) def match_engine(): @@ -53,7 +44,7 @@ def match_engine(): # popualate the db with mock data db_names = list(dedicated_dbs.keys()) try: - populate_mock(db, db_names) + populate_mock(db, db_names, dedicated_dbs) except Exception as e: assert False, "Mock initialization failed: " + str(e) diff --git a/tests/dump_tests/module_tests/vxlan_tunnel_map_test.py b/tests/dump_tests/module_tests/vxlan_tunnel_map_test.py index 771ed57cd36..157eb8f5395 100644 --- a/tests/dump_tests/module_tests/vxlan_tunnel_map_test.py +++ b/tests/dump_tests/module_tests/vxlan_tunnel_map_test.py @@ -2,7 +2,7 @@ import os import pytest from deepdiff import DeepDiff -from dump.helper import create_template_dict +from dump.helper import create_template_dict, populate_mock from dump.plugins.vxlan_tunnel_map import Vxlan_tunnel_map from dump.match_infra import MatchEngine, ConnectionPool from swsscommon.swsscommon import SonicV2Connector @@ -21,18 +21,6 @@ dedicated_dbs['ASIC_DB'] = os.path.join(vxlan_tunnel_map_files_path, "asic_db.json") -def populate_mock(db, db_names): - for db_name in db_names: - db.connect(db_name) - # Delete any default data - db.delete_all_by_pattern(db_name, "*") - with open(dedicated_dbs[db_name]) as f: - mock_json = json.load(f) - for key in mock_json: - for field, value in mock_json[key].items(): - db.set(db_name, key, field, value) - - @pytest.fixture(scope="class", autouse=True) def match_engine(): @@ -46,7 +34,7 @@ def match_engine(): # popualate the db with mock data db_names = list(dedicated_dbs.keys()) try: - populate_mock(db, db_names) + populate_mock(db, db_names, dedicated_dbs) except Exception as e: assert False, "Mock initialization failed: " + str(e) diff --git a/tests/dump_tests/module_tests/vxlan_tunnel_test.py b/tests/dump_tests/module_tests/vxlan_tunnel_test.py index 22e4cc35e25..a3c7f09a707 100644 --- a/tests/dump_tests/module_tests/vxlan_tunnel_test.py +++ b/tests/dump_tests/module_tests/vxlan_tunnel_test.py @@ -2,7 +2,7 @@ import os import pytest from deepdiff import DeepDiff -from dump.helper import create_template_dict +from dump.helper import create_template_dict, populate_mock from dump.plugins.vxlan_tunnel import Vxlan_tunnel from dump.match_infra import MatchEngine, ConnectionPool from swsscommon.swsscommon import SonicV2Connector @@ -21,18 +21,6 @@ dedicated_dbs['ASIC_DB'] = os.path.join(vxlan_tunnel_files_path, "asic_db.json") -def populate_mock(db, db_names): - for db_name in db_names: - db.connect(db_name) - # Delete any default data - db.delete_all_by_pattern(db_name, "*") - with open(dedicated_dbs[db_name]) as f: - mock_json = json.load(f) - for key in mock_json: - for field, value in mock_json[key].items(): - db.set(db_name, key, field, value) - - @pytest.fixture(scope="class", autouse=True) def match_engine(): @@ -46,7 +34,7 @@ def match_engine(): # popualate the db with mock data db_names = list(dedicated_dbs.keys()) try: - populate_mock(db, db_names) + populate_mock(db, db_names, dedicated_dbs) except Exception as e: assert False, "Mock initialization failed: " + str(e)