@@ -3130,10 +3130,31 @@ def test_replace_multiasic_missing_scope(self):
3130
3130
def test_checkpoint_multiasic (self , mock_subprocess_popen ):
3131
3131
allconfigs = copy .deepcopy (self .all_config )
3132
3132
3133
- mock_instance = MagicMock ()
3134
- mock_instance .communicate .return_value = (json .dumps (allconfigs ), 0 )
3135
- mock_instance .returncode = 0
3136
- mock_subprocess_popen .return_value = mock_instance
3133
+ # Create mock instances for each subprocess call
3134
+ mock_instance_localhost = MagicMock ()
3135
+ mock_instance_localhost .communicate .return_value = (json .dumps (allconfigs ["localhost" ]), 0 )
3136
+ mock_instance_localhost .returncode = 0
3137
+
3138
+ mock_instance_asic0 = MagicMock ()
3139
+ mock_instance_asic0 .communicate .return_value = (json .dumps (allconfigs ["asic0" ]), 0 )
3140
+ mock_instance_asic0 .returncode = 0
3141
+
3142
+ mock_instance_asic1 = MagicMock ()
3143
+ mock_instance_asic1 .communicate .return_value = (json .dumps (allconfigs ["asic1" ]), 0 )
3144
+ mock_instance_asic1 .returncode = 0
3145
+
3146
+ # Setup side effect to return different mock instances based on input arguments
3147
+ def side_effect (* args , ** kwargs ):
3148
+ if "asic" not in args [0 ]:
3149
+ return mock_instance_localhost
3150
+ elif "asic0" in args [0 ]:
3151
+ return mock_instance_asic0
3152
+ elif "asic1" in args [0 ]:
3153
+ return mock_instance_asic1
3154
+ else :
3155
+ return MagicMock () # Default case
3156
+
3157
+ mock_subprocess_popen .side_effect = side_effect
3137
3158
3138
3159
checkpointname = "checkpointname"
3139
3160
print ("Multi ASIC: {}" .format (multi_asic .is_multi_asic ()))
0 commit comments