Skip to content

Commit 1488265

Browse files
azizkprincemaple
authored andcommitted
Commands: fix: filter out already selected tests
1 parent 2552278 commit 1488265

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

commands/mix_test.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,21 @@ def run(self, _edit):
8585

8686
all_test_block_regions = [r for r in all_test_block_regions if r]
8787

88-
grouped_by_describe_dict, _ = group_by_describe_block_regions(all_test_block_regions)
89-
9088
intersecting_test_regions = [
9189
regions
9290
for selected_lines_region in map(self.view.line, self.view.sel())
9391
for regions in all_test_block_regions
9492
if regions[-1].intersects(selected_lines_region)
9593
]
9694

95+
unique_intersecting_test_tuples = \
96+
unique_items([tuple(r.to_tuple() for r in regions) for regions in intersecting_test_regions])
97+
98+
intersecting_test_regions = \
99+
[tuple(sublime.Region(*t) for t in tuples) for tuples in unique_intersecting_test_tuples]
100+
101+
grouped_by_describe_dict, _ = group_by_describe_block_regions(all_test_block_regions)
102+
97103
grouped_isecting_by_describe_dict, test_to_describe_dict = \
98104
group_by_describe_block_regions(intersecting_test_regions)
99105

commands/utils.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,16 @@ def print_status_msg(msg):
1818
print(PRINT_PREFIX, msg)
1919
sublime.status_message(PRINT_PREFIX + ' ' + msg)
2020

21+
def unique_items(items):
22+
unique_items, seen_items = [], set()
23+
24+
for item in items:
25+
if item not in seen_items:
26+
unique_items.append(item)
27+
seen_items.add(item)
28+
29+
return unique_items
30+
2131
def expand_scope_right(view, begin_point, scope):
2232
end_point = next(
2333
(pt for pt in range(begin_point, view.size()) if not view.match_selector(pt, scope)),

0 commit comments

Comments
 (0)