Skip to content

Commit 75d5a03

Browse files
committed
add simple items_equivalent() function to check if two lists contain the same items
1 parent 021a5d1 commit 75d5a03

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

localstack/utils/cloudformation/template_deployer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1386,7 +1386,7 @@ def determine_resource_physical_id(resource_id, resources=None, stack=None, attr
13861386

13871387
def update_resource_details(stack, resource_id, details, action=None):
13881388
resource = stack.resources.get(resource_id, {})
1389-
if not resource:
1389+
if not resource or not details:
13901390
return
13911391

13921392
resource_type = resource.get('Type') or ''

localstack/utils/common.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,6 +1137,21 @@ def clear_list(list_obj):
11371137
del list_obj[0]
11381138

11391139

1140+
def items_equivalent(list1, list2, comparator):
1141+
""" Returns whether two lists are equivalent (i.e., same items contained in both lists,
1142+
irresepective of the items' order) with respect to a comparator function. """
1143+
def contained(item):
1144+
for _item in list2:
1145+
if comparator(item, _item):
1146+
return True
1147+
if len(list1) != len(list2):
1148+
return False
1149+
for item in list1:
1150+
if not contained(item):
1151+
return False
1152+
return True
1153+
1154+
11401155
def cleanup_tmp_files():
11411156
for tmp in TMP_FILES:
11421157
try:

0 commit comments

Comments
 (0)