Skip to content

Commit 079df7a

Browse files
committed
tools.memories, test: fix del SopelIdentifierMemory['key'] behavior
Resolves `KeyError` currently raised if the `key` parameter (`str`) doesn't match the internal (lowercased) representation of `Identifier`. That is, `del an_identifier_memory['key']` might have worked, but doing `del an_identifier_memory['KeY']` would not. This is now fixed.
1 parent 2f42b7d commit 079df7a

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

sopel/tools/memories.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,9 @@ def __contains__(self, key):
182182
def __setitem__(self, key: Optional[str], value):
183183
super().__setitem__(self._make_key(key), value)
184184

185+
def __delitem__(self, key: str):
186+
super().__delitem__(self._make_key(key))
187+
185188
def pop(self, key: str, default=_NO_DEFAULT):
186189
if default is _NO_DEFAULT:
187190
return super().pop(self._make_key(key))

test/tools/test_tools_memories.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,3 +123,11 @@ def test_sopel_identifier_memory_pop():
123123
assert 'missing_key' not in pop_me
124124
popped = pop_me.pop('missing_key', 'DEFAULT')
125125
assert popped == 'DEFAULT'
126+
127+
128+
def test_sopel_identifier_memory_del_key():
129+
memory = memories.SopelIdentifierMemory()
130+
memory['KeY'] = True
131+
assert 'KeY' in memory
132+
del memory['KeY']
133+
assert 'KeY' not in memory

0 commit comments

Comments
 (0)