Skip to content

Commit

Permalink
Merge pull request #219 from dwilliams-kenzan/adding-save-bgsave-last…
Browse files Browse the repository at this point in the history
…save

Adding save, bgsave, and lastsave commands.
  • Loading branch information
bmerry authored Oct 17, 2018
2 parents a4e85b8 + ec92d60 commit 39a56a6
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 3 deletions.
3 changes: 0 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,6 @@ server
------

* bgrewriteaof
* bgsave
* client kill
* client list
* client getname
Expand All @@ -135,7 +134,6 @@ server
* debug object
* debug segfault
* info
* lastsave
* memory doctor
* memory help
* memory malloc-stats
Expand All @@ -144,7 +142,6 @@ server
* memory usage
* monitor
* role
* save
* shutdown
* slaveof
* slowlog
Expand Down
12 changes: 12 additions & 0 deletions fakeredis.py
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,7 @@ def __init__(self, db=0, charset='utf-8', errors='strict',
self._encoding_errors = errors
self._pubsubs = []
self._decode_responses = decode_responses
self._lastsave = datetime.now()
self.connected = connected
_patch_responses(self, _check_conn)

Expand Down Expand Up @@ -783,6 +784,17 @@ def persist(self, name):
def ping(self):
return True

def bgsave(self):
self._lastsave = datetime.now()
return True

def save(self):
self._lastsave = datetime.now()
return True

def lastsave(self):
return self._lastsave

@_lua_reply(_lua_bool_ok)
@_locked
def rename(self, src, dst):
Expand Down
26 changes: 26 additions & 0 deletions test_fakeredis.py
Original file line number Diff line number Diff line change
Expand Up @@ -2870,6 +2870,32 @@ def test_key_patterns(self):
def test_ping(self):
self.assertTrue(self.redis.ping())

def test_bgsave(self):
self.assertTrue(self.redis.bgsave())

def test_save(self):
self.assertTrue(self.redis.save())

def test_lastsave(self):
self.assertTrue(isinstance(self.redis.lastsave(), datetime))

@attr('slow')
def test_bgsave_timestamp_update(self):
early_timestamp = self.redis.lastsave()
sleep(1)
self.assertTrue(self.redis.bgsave())
sleep(1)
late_timestamp = self.redis.lastsave()
self.assertLess(early_timestamp, late_timestamp)

@attr('slow')
def test_save_timestamp_update(self):
early_timestamp = self.redis.lastsave()
sleep(1)
self.assertTrue(self.redis.save())
late_timestamp = self.redis.lastsave()
self.assertLess(early_timestamp, late_timestamp)

def test_type(self):
self.redis.set('string_key', "value")
self.redis.lpush("list_key", "value")
Expand Down

0 comments on commit 39a56a6

Please sign in to comment.