Skip to content

Commit 25e8d6b

Browse files
CodingFeng101mahmoud
authored andcommitted
Match list insert before start in BarrelList
1 parent 4aa77cd commit 25e8d6b

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

boltons/listutils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ def insert(self, index, item):
139139
else:
140140
list_idx, rel_idx = self._translate_index(index)
141141
if list_idx is None:
142-
raise IndexError()
142+
list_idx, rel_idx = 0, 0
143143
self.lists[list_idx].insert(rel_idx, item)
144144
self._balance_list(list_idx)
145145
return

tests/test_listutils.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,17 @@ def test_barrel_list():
5151
bl3[:20:2] = range(0, -10, -1)
5252
assert bl3[6] == -3 # some truly tricky stepping/slicing works
5353

54+
55+
def test_barrel_list_insert_before_start_matches_list():
56+
bl = BarrelList(range(int(1e5)))
57+
bl._balance_list(0)
58+
59+
bl.insert(-int(1e9), 'start')
60+
61+
assert bl[0] == 'start'
62+
assert len(bl) == int(1e5) + 1
63+
64+
5465
def test_sort_barrel_list():
5566
bl = BarrelList(reversed(range(100000)))
5667
bl.pop(50000)

0 commit comments

Comments
 (0)