From 55c7d249fb091896efcdba5d0bfee0d078609e95 Mon Sep 17 00:00:00 2001 From: YueGuobin Date: Tue, 17 Mar 2026 22:33:28 +0800 Subject: [PATCH] feat(tests): improve class comparison in custom netmiko tests Refactor test assertions to compare classes by module and name instead of direct object comparison. This ensures tests remain reliable when classes are imported via different paths, preventing false failures due to import variations. Changes applied to Huawei CE, Ruijie, and VPCS telnet driver tests. --- .../utils/custom_netmiko/tests/test_huawei_ce.py | 11 +++++++---- .../utils/custom_netmiko/tests/test_ruijie_telnet.py | 11 +++++++---- .../utils/custom_netmiko/tests/test_vpcs_telnet.py | 11 +++++++---- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_huawei_ce.py b/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_huawei_ce.py index 62a1c3a5c..f432dc1a4 100644 --- a/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_huawei_ce.py +++ b/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_huawei_ce.py @@ -51,16 +51,19 @@ class TestHuaweiTelnetCEDriver(unittest.TestCase): # Check CLASS_MAPPER self.assertIn("gns3_huawei_telnet_ce", CLASS_MAPPER) + registered_class = CLASS_MAPPER["gns3_huawei_telnet_ce"] + # Compare by module+name since class may be imported via different paths self.assertEqual( - CLASS_MAPPER["gns3_huawei_telnet_ce"], - self.HuaweiTelnetCE + (registered_class.__module__, registered_class.__name__), + (self.HuaweiTelnetCE.__module__, self.HuaweiTelnetCE.__name__) ) # Check CLASS_MAPPER_BASE self.assertIn("gns3_huawei_telnet_ce", CLASS_MAPPER_BASE) + registered_class_base = CLASS_MAPPER_BASE["gns3_huawei_telnet_ce"] self.assertEqual( - CLASS_MAPPER_BASE["gns3_huawei_telnet_ce"], - self.HuaweiTelnetCE + (registered_class_base.__module__, registered_class_base.__name__), + (self.HuaweiTelnetCE.__module__, self.HuaweiTelnetCE.__name__) ) def test_inheritance_from_huawei_base(self): diff --git a/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_ruijie_telnet.py b/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_ruijie_telnet.py index 682050c9e..d9fa34f3c 100644 --- a/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_ruijie_telnet.py +++ b/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_ruijie_telnet.py @@ -51,16 +51,19 @@ class TestRuijieTelnetEnhancedDriver(unittest.TestCase): # Check CLASS_MAPPER self.assertIn("gns3_ruijie_telnet", CLASS_MAPPER) + registered_class = CLASS_MAPPER["gns3_ruijie_telnet"] + # Compare by module+name since class may be imported via different paths self.assertEqual( - CLASS_MAPPER["gns3_ruijie_telnet"], - self.RuijieTelnetEnhanced + (registered_class.__module__, registered_class.__name__), + (self.RuijieTelnetEnhanced.__module__, self.RuijieTelnetEnhanced.__name__) ) # Check CLASS_MAPPER_BASE self.assertIn("gns3_ruijie_telnet", CLASS_MAPPER_BASE) + registered_class_base = CLASS_MAPPER_BASE["gns3_ruijie_telnet"] self.assertEqual( - CLASS_MAPPER_BASE["gns3_ruijie_telnet"], - self.RuijieTelnetEnhanced + (registered_class_base.__module__, registered_class_base.__name__), + (self.RuijieTelnetEnhanced.__module__, self.RuijieTelnetEnhanced.__name__) ) def test_inheritance_from_ruijie_os_base(self): diff --git a/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_vpcs_telnet.py b/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_vpcs_telnet.py index 64700e139..b473c6ee8 100644 --- a/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_vpcs_telnet.py +++ b/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_vpcs_telnet.py @@ -53,16 +53,19 @@ class TestVPCSTelnetDriver(unittest.TestCase): # Check CLASS_MAPPER self.assertIn("gns3_vpcs_telnet", CLASS_MAPPER) + registered_class = CLASS_MAPPER["gns3_vpcs_telnet"] + # Compare by module+name since class may be imported via different paths self.assertEqual( - CLASS_MAPPER["gns3_vpcs_telnet"], - self.VPCSTelnet + (registered_class.__module__, registered_class.__name__), + (self.VPCSTelnet.__module__, self.VPCSTelnet.__name__) ) # Check CLASS_MAPPER_BASE self.assertIn("gns3_vpcs_telnet", CLASS_MAPPER_BASE) + registered_class_base = CLASS_MAPPER_BASE["gns3_vpcs_telnet"] self.assertEqual( - CLASS_MAPPER_BASE["gns3_vpcs_telnet"], - self.VPCSTelnet + (registered_class_base.__module__, registered_class_base.__name__), + (self.VPCSTelnet.__module__, self.VPCSTelnet.__name__) ) def test_inheritance_from_base_connection(self):