Skip to content

Commit a82757d

Browse files
author
Jesse Myers
committed
Merge branch 'jgargallo-develop' into develop
2 parents b192031 + 1f0a2e3 commit a82757d

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

CHANGES.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
Version 2.9.0.9
2+
3+
- Support: RENAME and RENAMENX
14
- SADD will raise an exception if an empty list is passed to it
25

36
Version 2.9.0.8

mockredis/client.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,16 @@ def flushdb(self):
230230
self.pubsub.clear()
231231
self.timeouts.clear()
232232

233+
def rename(self, old_key, new_key):
234+
self._rename(old_key, new_key)
235+
236+
def renamenx(self, old_key, new_key):
237+
self._rename(old_key, new_key, True)
238+
239+
def _rename(self, old_key, new_key, nx=False):
240+
if old_key in self.redis and (not nx or new_key not in self.redis):
241+
self.redis[new_key] = self.redis.pop(old_key)
242+
233243
#### String Functions ####
234244

235245
def get(self, key):

mockredis/tests/test_redis.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,3 +208,16 @@ def test_delitem(self):
208208
eq_(None, self.redis.get("foo"))
209209
# redispy does not correctly raise KeyError here, so we don't either
210210
del self.redis["foo"]
211+
212+
def test_rename(self):
213+
self.redis["foo"] = "bar"
214+
self.redis.rename("foo", "new_foo")
215+
eq_("bar", self.redis.get("new_foo"))
216+
217+
def test_renamenx(self):
218+
self.redis["foo"] = "bar"
219+
self.redis["foo2"] = "bar2"
220+
self.redis.renamenx("foo", "foo2")
221+
eq_("bar2", self.redis.get("foo2"))
222+
self.redis.renamenx("foo", "foo3")
223+
eq_("bar", self.redis.get("foo3"))

0 commit comments

Comments
 (0)